2009-04-24 19 views
9

Solía ​​ejecutar Tomcat por separado en mi máquina. Tenía un script Ant que reconstruiría mi proyecto, lo desplegaría localmente y reiniciaría Tomcat. Todo funcionó bien, pero no pude depurar la aplicación web dentro de Eclipse.¿Cómo administrar adecuadamente las aplicaciones web Tomcat dentro de Eclipse?

Así que aprendí a configurar Tomcat dentro de Eclipse y obtuve mi aplicación web en funcionamiento. Ahora el problema es que no entiendo completamente cómo administrarlo de esta manera. Eclipse está configurado para construir automáticamente mi proyecto en los cambios, pero esos cambios no parecen reflejarse siempre en la aplicación web. A veces tengo que crear manualmente el proyecto y "limpiar" manualmente el servidor para que se reflejen los cambios.

¿Existen reglas en algún lugar sobre cómo administrar esta configuración? Por ejemplo, si solo cambio un JSP, ¿se sincronizará automáticamente? Si cambio una clase de servlet, entonces necesito reconstruir el proyecto manualmente? ¿Son consistentes estas reglas, o debería reconstruirlas y limpiarlas todas las veces?

Realmente agradecería que alguien pudiera darme las mejores reglas de práctica o señalarme un buen recurso para aprender a manejar este entorno.

PS. Estoy usando el paquete Eclipse 3.4.1 Java EE y Tomcat v5.5

Respuesta

5

Puede usar Eclipse y Tomcat de la manera que usted menciona. En primer lugar los conceptos básicos de cómo configurarlo:

  1. En la vista Servidores configurar un nuevo servidor Tomcat que apuntan a su TOMCAT_HOME
  2. Asegúrese de que su proyecto es un "proyecto web" Eclipse. Es posible que necesite crear un archivo ficticio y copiar algunos de los archivos en .settings (consulte los archivos wst).
  3. Despliegue su proyecto en Tomcat haciendo clic derecho en el servidor en la vista Servidores y "Agregar y quitar proyectos ..." para agregar su proyecto al servidor.

Puede ejecutar su servidor y probarlo como si estuviera ejecutando Tomcat fuera de Eclipse. Si ejecuta el servidor en modo Depuración, puede establecer puntos de interrupción y recorrer el código.

En cuanto a cuándo tendrá que reiniciar el servidor, Eclipse suele ser bastante bueno en la implementación automática de los cambios. Casi nunca tendrá que reiniciar para realizar cambios en las páginas jsp. Si cambia una clase, implementará automáticamente el cambio (generalmente) si cambia el cuerpo de un método. Si cambia la firma de una clase (agregue o elimine un método o cambie args por él), casi siempre tendrá que reiniciar. Cualquier cambio en los archivos de configuración (web.xml o similar) casi siempre requerirá un reinicio.

Para reiniciar simplemente haga clic en el botón "Depurar" o "Ejecutar" en la vista Servidor. Todos sus cambios se volverán a implementar en Tomcat.

Una cosa a tener en cuenta es que en la configuración predeterminada no se usará su directorio "webapp" en TOMCAT_HOME. En su lugar, utilizará una carpeta en su directorio de área de trabajo Eclipse (WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0).

0

Normalmente, debe volver a publicar la aplicación para obtener los últimos cambios, no olvide sincronizar primero con el sistema de archivos en caso de que sus archivos se modifiquen de manera extrema. Puede especificar que su aplicación se vuelva a cargar automáticamente cuando se modifique, busque el atributo de recarga automática en server.xml del proyecto de configuración del servidor. Cuando se establece en verdadero, Tomcat recargará automáticamente su aplicación. Por cierto, no siempre es una buena idea. Las JSP modificadas deberían funcionar automáticamente, sin necesidad de reiniciar la aplicación.

0

Si cambia la estructura de una clase que ya se ha cargado y utilizado (agregar/eliminar miembros, cambiar la firma del método, etc.), los cambios en su código no se reflejarán. Esto no es un problema de eclipse, sino un problema de JVM. Si realiza cambios simples en el código, como cambios lógicos dentro de un método existente, los cambios surtirán efecto después de que la clase se compile y se vuelva a implementar. Independientemente de eso, si cambia una constante pública, debe reconstruir su (s) proyecto (s).

0

encontré dos cosas importantes para entender:

  • Eclipse no se da cuenta de forma automática si los archivos se han cambiado fuera de Eclipse. hacer clic en Actualizar en un proyecto hace eso, también lo hace F5. También puede cambiar una configuración para actualizar automáticamente, lo que, sin embargo, no detecta cambios al instante (mi instinto me dice que demora hasta 10 segundos)

  • Trabajar con servidores tiene el concepto de "Publicar" archivos en Tomcat. Esto normalmente ocurre automáticamente dentro de un segundo después de cualquier cambio. Cambiar muchas clases puede causar muchas recargas de servidor, lo que puede ser un lastre si una recarga de contexto toma algo de tiempo (como ciertamente lo hacen las aplicaciones complejas de Spring). Así que cambié una configuración para no publicar automáticamente (haga doble clic en Instancia de servidor)

Cuestiones relacionadas