Foros del Web » Programación para mayores de 30 ;) » Java »

¿Es necesario el 'empaquetar' las clases en WEB-INF/classes??

Estas en el tema de ¿Es necesario el 'empaquetar' las clases en WEB-INF/classes?? en el foro de Java en Foros del Web. Bueno estoy haciendo mis principios con las JSP. Tengo mi directorio webapps/ejemplo en donde tengo mi pagina JSP, en la ruta webapps/ejemplo/WEB-INF/classes habia colocado una ...
  #1 (permalink)  
Antiguo 20/07/2008, 17:41
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
¿Es necesario el 'empaquetar' las clases en WEB-INF/classes??

Bueno estoy haciendo mis principios con las JSP. Tengo mi directorio webapps/ejemplo en donde tengo mi pagina JSP, en la ruta webapps/ejemplo/WEB-INF/classes habia colocado una clase llamada "Primera.class" que se utiliza en la pagina JSP pero no la podia "ver" hasta que dentro de "classes" hice una carpeta llamada "alfa" y dentro meti la clase. Modifique la instruccion
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="Primera" errorPage="" %>
por la siguiente

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="alfa.Primera" errorPage="" %>

y listo ejecutó la pagina sin error.

entonces mi duda es ¿Es obligatorio empaquetar las clases dentro de esa carpeta para poder importarlas?? ¿No se pueden importar directamente con el nombre de la clase si están dentro de la carpeta "classes"?? ¿O tengo mal configurado algun archivo??

Gracias

Arturo A.
  #2 (permalink)  
Antiguo 20/07/2008, 17:55
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Respuesta: ¿Es necesario el 'empaquetar' las clases en WEB-INF/classes??

Según el estándar de JavaEE, las clases a usar en la aplicación web deben estar en el directorio WEB-INF/classes/

Si lo deseas, puedes empaquetar las clases en un jar y colocarlas en WEB-INF/lib/

Al menos eso indica el estándar, pero no se hasta que punto los servidores que implementan este estándar respetan esta pauta (deberían hacerlo).

En definitiva, te recomendaría que por más que el servidor que usas, te soporte poner las clases en otro lugar, respetes el estándar y las coloques donde es debido (WEB-INF/classes)
  #3 (permalink)  
Antiguo 20/07/2008, 17:59
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: ¿Es necesario el 'empaquetar' las clases en WEB-INF/classes??

Gracias por la pronta respuesta, pero mi duda es precisamente porque las clases la tenia directamente en WEB-INF/classes, y no me permitia importarla, fue hasta que cree un paquete que la estructura quedó de la siguiente forma WEB-INF/classes/alfa/ y dentro de esta ubiqué la clase, entonces ya me permitio importarla. Yo tenia entendido que las clases podian andar "libremente" dentro de WEB-INF/classes, pero de acuerdo a este comportamiento me parece que deben ir dentro de paquetes (carpetas).


Saludos

Arturo.
  #4 (permalink)  
Antiguo 21/07/2008, 00:15
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: ¿Es necesario el 'empaquetar' las clases en WEB-INF/classes??

No tiene que ver con JSP. En Java siempre es así, las clases en el classpath tienen que ir en las carpetas equivalentes al paquete donde estan. Sea dentro de un fichero .jar como en carpetas del S.O. si no estan empaquetados en .jar. Pero siempre tienes que tener la estructura de carpetas equivalente.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 21/07/2008, 08:32
Avatar de Xinef  
Fecha de Ingreso: marzo-2007
Mensajes: 202
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: ¿Es necesario el 'empaquetar' las clases en WEB-INF/classes??

Cita:
Iniciado por matrix17 Ver Mensaje
Gracias por la pronta respuesta, pero mi duda es precisamente porque las clases la tenia directamente en WEB-INF/classes, y no me permitia importarla, fue hasta que cree un paquete que la estructura quedó de la siguiente forma WEB-INF/classes/alfa/ y dentro de esta ubiqué la clase
Eso es porque tienes la clase dentro del paquete alfa.

Mira el código fuente, a ver si tienes una línea: package alfa.
  #6 (permalink)  
Antiguo 22/07/2008, 07:29
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: ¿Es necesario el 'empaquetar' las clases en WEB-INF/classes??

Bueno, creo que no me he explicado bien, mi directorio original era

..WEB-INF/classes/ y dentro de classes se ubicaba mi archivo .class que queria importar a mi pagina JSP, supongamos que se llama Primero.class... la jsp está guardada fuera de WEB-INF (y dentro de una carpeta que engloba a todos como es requerido), el import que usaba en la página era import="Primero", pero de esta forma la pagina no podia "ver" a la clase importada. Entonces generé una carpeta dentro de WEB-INF a la cual llame alfa y mi archivo Primero.class lo moví dentro de dicha carpeta, posteriormente el import lo modifique a : import="alfa.Primero" y la página se ejecutó correctamente. De aqui deriva mi duda, si es necesario meter en carpetas (paquetes) las clases, o hay alguna forma de ubicarlas libremente sin carpetas dentro de WEB-INF y que se puedan importar sin problema.

Saludos

Arturo A.
  #7 (permalink)  
Antiguo 22/07/2008, 07:51
 
Fecha de Ingreso: junio-2008
Mensajes: 168
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ¿Es necesario el 'empaquetar' las clases en WEB-INF/classes??

C:\jakarta-tomcat-5.0.28\webapps\ROOT\WEB-INF\classes\CarpetaNombreTuProyecto

dentro de classes creas tu carpeta con el nombre tu proyecto:
ejemplo si tu proyecto se llama futbol la ruta será:

C:\jakarta-tomcat-5.0.28\webapps\ROOT\WEB-INF\classes\futbol

y en todas las paginas jsp arriba en la cabecerá deberás poner el import de tu proyecto es decir esta línea-> import="futbol.*"
  #8 (permalink)  
Antiguo 22/07/2008, 08:14
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: ¿Es necesario el 'empaquetar' las clases en WEB-INF/classes??

No hay más:
Cita:
Iniciado por GreenEyed Ver Mensaje
No tiene que ver con JSP. En Java siempre es así, las clases en el classpath tienen que ir en las carpetas equivalentes al paquete donde estan. Sea dentro de un fichero .jar como en carpetas del S.O. si no estan empaquetados en .jar. Pero siempre tienes que tener la estructura de carpetas equivalente.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:57.