Servidor WEB

Tengo una duda con respecto a la diferencia entre un servidor web y un contenedor de servlet. Para ser más especifico que diferencia puede haber entre JBoss y Tomcat.
Esto debido a que tengo un pequeño problema, me he desarrollado un aplicación J2EE, usando Eclipse 2.x, MySQL 5.x y JBoss baja windows XP. Todo funciona de maravilla, pero la versión de JBoss que ocupo es la 3.0, esta version no se instala como un servicio, ( Al menos yo creo que no se puede), sino se tiene que ejecutar el archivo "run.bat" para que funcione, al hacer esto me sale una ventana de DOS, con la bitácora de JBoss, lo que hace que mi aplicación no se vea muy estética que digamos(No me gusta la ventana de DOS atrás del browser, ni minimizada).
Por lo que deseo trasladar mi aplicación ya sea a Tomcat o glasfish, ya que estos tienen la opción de instalarse como servicios en windows. Pero es allí donde esta el problema pues no logro que reconozca la aplicación tomcar, he tratado lo siguiente:
        - Tratar de importar el archivo .war de mi aplicion
        - Desempaquetar mi aplicación y copiar los archivos al root/apps de tomcat
        - Modificar el archivo web.xml de modo que sea ajuser al generado por tomcat
Pero nada funciona, no puedo ejecutar mi aplicación.
Con glasfish, no he intentado, quise consultar primero.
Ademas deseo subir mi aplicación a internet, tengo un viejo dominio, que lo use para un proyecto de la universidad, en el tengo una página estática. Puero html. Pero creo que este dominio esta con apache. ¿Puedo montar mi aplicación allí? O definitivamente no. ¿Podría hacer algo como instalar tomcat como plugin de apache en mi domino?

1 respuesta

Respuesta
1
Como dijo Jack el destripador, "vamos por partes": Migrar de JBoss a Tomcat no tendría que darte ningún problema, ya que JBoss usa Tomcat como contenedor de servlets. Por tanto, algo raro está pasando. Prueba a desplegar tu archivo war con el administrador web de Tomcat, y dime el error que te da.
También puedes probar a meter tu aplicación en la carpeta "webapps" de tomcat, siempre que tu aplicación tenga la estructura interna adecuada (carpeta "WEB_INF" con el fichero "web.xml", y la carpeta "WEB-INF/classes" con tus clases java). Una vez copiado, arranca el Tomcat como aplicación, no como servicio (para el servicio antes, si ya se está ejecutando), y consulta los errores que te salen por la "antiestética" consola. Siempre es más cómodo mirar la consola que el fichero de log.
Cuando tengas un error concreto, pásamelo y vemos por donde pueden ir los tiros.
En cuanto a montar tu aplicación en un Apache Web Server, una pregunta: ¿Tienes posibilidad de montar un Tomcat en ese dominio? Si es así, se puede instalar una pasarela entre apache y tomcat, mediante un módulo de apache. Lo que creo que no existe es un módulo de apache que lo convierta en un contenedor de servlets.
Bueno.
Perdón por la tardanza, pero estaba realizando unas pruebas para poder preguntarte de una forma más clara.
En primer lugar, cunado dices que jboss usa a tomcat como contenedor de servle, no me queda clara la diferencia entre contenedor y servidor, ampero, me queda claro que si podría hacer la transición entre ellos.
Segundo lugar, agradezco tu paciencia para ayudarme, ya que como te dije necesito ocultar la bitácora de jboss, no por que me moleste, sino que la aplicación la montare en una pequeña lan, y por lo tanto la aplicación se cargara en una maquina que sera usada por un usuario, por eso quiero hacer lo más limpio posible el front-end en dicha maquina.
Ahora los errores
Cuando lo hago con el administrador web de tomcat al intentar cargar el archivo.war, En el formulario le doy examinar, selecciono el archivo, aparentemente lo acepta sin ningún problema, pero al dar refresh, no aparece en el webapps
Si por el contrario desempaqueto mi aplicación en el direcotrio webapps, al ir al index sale Servlet Error, Class not Found
He tratado de modificar los archivos de la carpeta WEB-INF, pero siempre me sale el error de arriba, esta es la estructura de mi WEB-INF
- 2 carpetas: classs y lib, sin archivos
    - Buil.propieties
    - Build.xml
    - Resin-web.xml
    - targets.xml // este tiene definido que mi servidor es jboss 3000
- web.xml // Este define los servlets, el index.jsp, el error.jsp
- weblogic.xml
No se si tienes alguna sugerencia de que es lo que tengo que modificar
Antes de terminar de escribir esto, me di cuenta que dices que las carpeta clases tiene que tener mis clases java, pero este war no tiene ninguna. ¿Andará por ahí el error?. Por cierto yo me conecto a la base de datos por odbc. Gracias por tu atención.
Efectivamente, el problema es que en el fichero war que despliegas no están las clases. Tras el despliegue, tendrían que estar, bien en la carpeta "WEB-INF/classes" o bien en la carpeta "WEB-INF/lib" dentro de algún jar. Abre el war con winzip o winrar (como si fuera un zip normal y corriente) y verifica que dentro de las carpetas "classes" y "lib" hay contenido.
Si en jBoss tienes esas carpetas con las clases (puesto que la aplicación te está funcionando en jBoss), cópialas tal cual en el tomcat. Por cierto, en la carpeta lib debería estar el jar con el driver jdbc-odbc, más todas las librerías que use tu aplicación.
Ya me contarás.
Gracias Ya encontré una solución. No es muy ortodoxa que digamos, pero me funciona. He aquí como lo solucione.
La carpeta de classes estaba vacía, pues yo no utilice librerías externas, solo las estándar del jdk. Y el odbc lo instalaba en cada maquina. Pero se me olvido comentarte algo. Para desarrollar yo ocupaba el jdk 1.4 y el tomcat que yo instalaba requería al menos el el jre 1.5, por que para usar el tomcat yo usaba el jre1.6. Y probé todo lo que me dijiste y no funciono, Hasta que caí en la idea que debía ser que las classes del jdk 1.4 y las jre1.6 no tenían por que ser idénticas.
Así que mi gran solución, instalar un tomcat que funcionara bajo el jre1.4! Y Problema Arreglado
De antemano te agradezco por la paciencia, la ayuda y sobre todo la orientación, y sabes que tienes 5 estrellas, pero dejo la pregunta abierta, por si quieres dejar un comentario o ampliar un poco más el conocimiento a la comunidad. Y cuando respondas te dejo tus 5 estrellas OK
Buena Suerte
Lo que no entiendo demasiado bien es que las carpetas classes y lib estén vacías. ¿Dónde están tus servlets, y las clases que usan jdbc-odbc?
Es cierto que la versión de la máquina virtual te puede jugar malas pasadas. Para compilar el proyecto, eclipse permite utilizar el JDK que tú le indiques, por lo que puedes compilar tu proyecto para java 1.5.x o 1.6.x y que funcione en un Tomcat más moderno.
Me quedo con la duda de dónde están tus clases...
Ok, lo que pasa es que al momento de agregar el web module en eclipse, me muestra un anuncio que dice:
   Se agregara un nuevo folder llamado "j2src"
Al darle aceptar muestra otro mensaje
También se agregara el folder llamado "bin"
En el primero pongo todos los archivos .java y automáticamente en el segundo van apareciendo los archivos .class
Y en propiedades->Java Build Path de mi aplicación solo aparece el jre y las de jboss
con el driver odbc, no tengo ninguna classe, sino que es un archivo ejecutable que instalo en cada maquina que usa la aplicación. Y por lo que creo la clase que ocupa es la java.sql.connection Que se encuentra dentro del jre
Espero haber satisfecho tu curiosidad. Lastima que no puedo subir screenshots, para mostrarte mi caso de una mejor manera
Ok. Si te puedo ayudar en algo más, ya sabes: pregunta al canto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas