¿Hay alguna manera de tener que reiniciar tomcat cada vez que se realiza un pequeño cambio en el código java?Tener que reiniciar tomcat cada vez que realice un cambio
Respuesta
Conjunto reloadable
Atributo de <Context>
elemento en context.xml
a true
.
<Context reloadable="true">
Entonces Tomcat monitorear los cambios en /WEB-INF/classes
y /WEB-INF/lib
y volver a cargar cuando sea apropiado.
Si está utilizando un IDE, también se puede configurar como servidor. He aquí cómo se vea como en Eclipse:
en Eclipse ¿cómo llego a este menú? (en la foto)? – Val
@Val Vaya a la vista "Servidores" y haga doble clic en "Tomcat vx.x Server at xxx". –
¿Cómo hago esto en Intellij? – michaelsnowden
Echa un vistazo Jrebel. Detecta cambios en el código, compila y despliega la guerra automáticamente, sin tener que reiniciar el servidor. Ahorra mucho tiempo y mejora la productividad.
Debe tenerse en cuenta que es una solución comercial. –
Sí, pero no cuesta mucho. estoy seguro de que debe haber algún producto de código abierto para un problema similar. Estaría feliz de saber eso, si existe alguno. –
Tomcat se reinicia tan rápido que no necesita Jrebel. Solo necesitas Jrebel cuando usas el muy lento para reiniciar tipos como websphere o JBOSS.que generalmente son exagerados, pero estoy divagando. – bwawok
Sí. Puede configurar tomcat para la implementación automática y recogerá los cambios automáticamente. Todavía se redistribuye, pero es mucho más rápido. Simplemente agregue "autodeploy =" true "" a su entrada de Host en el archivo de configuración server.xml.
Eso es lo que hacemos donde trabajo. Cuando llega el momento de actualizar una de nuestras aplicaciones, simplemente colocamos el nuevo archivo WAR encima del antiguo y Tomcat lo descomprime y lo implementa automáticamente.
La última vez que revisé, la función de autodeploración estaba activada de manera predeterminada. –
Y no es lo que OP está buscando. Esto solo supervisa los cambios de los archivos '* .war' en' webapps' y autodeploye cada vez que se agrega uno nuevo o uno existente. – BalusC
¿Por qué no es lo que busca el OP? Copiar sobre la vieja guerra es una manera perfectamente buena de redesplegar una aplicación. –
No tiene que reiniciar Tomcat, simplemente vuelva a implementar la aplicación. Hay diferentes formas de hacerlo (google "tomcat deploy" y obtendrá muchos punteros), pero lo más simple es copiar el archivo de guerra recién creado en el directorio de webapps de Tomcat. Tomcat detectará automáticamente cuándo se actualiza el archivo y volverá a iniciar la aplicación.
Si necesita modificar las clases sin necesidad de reiniciar consideran Dynamic Code Evolution VM, además de la respuesta de BalusC para evitar errores PermGen, para el desarrollo.
Y es fuente gratuita y abierta :-) – xmedeko
Incluso si Tomcat es generalmente muy rápido en la puesta en marcha, depende en gran medida de la aplicación, qué tan rápido se puede inicializar. Si hay un contexto de aplicación de primavera bastante grande, con todo tipo de integraciones y asignaciones de Hibernate, estoy bastante seguro de que arrancar tardará 1,5 segundos para iniciar Tomcat, pero 1,5 minutos para iniciar su aplicación. JRebel realmente podría ayudar aquí.
También puedes probar DCEVM. He escrito un howto sobre cómo configurar con Tomcat + Eclipse: Spring-mvc + Velocity + DCEVM
@Adi ya ha mencionado DCEVM. +1 para el buen tutorial. – xmedeko
He estado usando el agente JVM Spring Loaded para evitar reiniciar Tomcat o volver a cargar la aplicación (que puede tomar un tiempo para que las aplicaciones web de Primavera). Configuro mi servidor Tomcat en Eclipse junto con "Publicar automáticamente cuando cambian los recursos" para que los cambios entren en vigencia casi de inmediato.
Si utiliza Eclipse con Tomcat integrado (DAP), se puede ver los pasos que di aquí: https://stackoverflow.com/a/37064672/1034436
- 1. Necesito reiniciar python en el terminal cada vez que se realiza un cambio en el script
- 2. Tengo que reiniciar Apache cada vez que cambio mi código de Rails
- 3. WebStorm, utilizando Node Supervisor (para no tener que reiniciar después de cada cambio de código)?
- 4. ¿Cómo desarrollar un módulo/paquete de Python sin tener que reiniciar el intérprete después de cada cambio?
- 5. Git piensa que estoy reescribiendo uno de mis archivos cada vez que hago un pequeño cambio
- 6. ¿Cómo no reiniciar el servidor cada vez que trabaje con Flask o Express?
- 7. (Rails) Recargar archivos "lib" sin tener que reiniciar el servidor ...?
- 8. Al desarrollar un paquete R, ¿tengo que volver a compilar el paquete cada vez que realizo un cambio?
- 9. Maven Project Builder se invoca cada vez que cambio un archivo fuente (GWT)
- 10. ¿Cómo impido que un área de texto se desplace hacia la parte superior cada vez que cambio su valor?
- 11. ¿Se garantiza que invocar kernel/sched.c/context_switch() cada vez que se conecta un proceso?
- 12. ¿Canvas se vuelve a dibujar cada vez que cambia algo?
- 13. Inicie sesión en authlogic sin tener que completar el formulario cada vez
- 14. Establezca una variable bash cada vez que cambie el directorio
- 15. SVN + SSH, sin tener que hacer ssh-add cada vez? (Mac OS)
- 16. esquemas de construcción Xcode 4 arruinados cada vez que cambio ramas en Git
- 17. TortoiseGit y Pageant, tienen que "agregar la clave" cada vez
- 18. ¿Cómo detener la ejecución de T4 cada vez que cambio a otra pestaña?
- 19. ¿Por qué C# le exige que escriba un cheque nulo cada vez que activa un evento?
- 20. Quiere que procmail ejecute un script de python personalizado, cada vez que aparece un nuevo correo
- 21. glVertexAttribPointer necesario cada vez que se llama glBindBuffer?
- 22. Necesito opiniones sobre LaTeX y cada vez que actualizo
- 23. Ant; cómo especificar un archivo es ejecutable, así que no tengo que chmod + x cada vez
- 24. ¿Cómo puedo informar a sqlalchemy que genere un error cada vez que MySQL arroje una advertencia?
- 25. Tener ssh no pedir una contraseña cada vez con Mercurial
- 26. ¿Cómo puedo hacer que TMUX esté activo cada vez que inicio una nueva sesión de shell?
- 27. Cron trabajo creando archivo vacío cada vez que se ejecuta
- 28. ¿Puedo decirle al capataz que vuelva a cargar la aplicación web cada vez que se realiza una solicitud para que pueda desarrollarme decentemente?
- 29. Tomcat no se actualiza hasta que reinicié Eclipse
- 30. Cómo evitar que Xcode reconstruya el proyecto cada vez
Tomcat no necesita ser reiniciado. En el peor de los casos, necesita deshacer/volver a implementar su * .war *. – SyntaxT3rr0r