2012-09-27 25 views
8

Tengo un entorno compatible con PCI DSS que ejecuta varias aplicaciones y quiero reiniciar solo una aplicación sin reiniciar el servidor. No tengo el administrador porque aparentemente no está permitido en este entorno.webapp de reinicio tomcat desde la línea de comandos

¿Cómo hago para reiniciar una sola aplicación web a través de la línea de comandos?

+0

Posible duplicado de [¿Qué es una forma fácil y rápida de volver a cargar una aplicación web en tomcat en entorno de desarrollo?] (Https://stackoverflow.com/questions/1800784/whats-an-easy-quick-way-to-reload -a-webapp-in-tomcat-in-dev-environment) – rogerdpack

Respuesta

0

Desafortunadamente, no creo que haya una manera de hacerlo desde la línea de comandos. En su lugar, recomendaría ver si hay una manera de alojar la aplicación individual que necesita reiniciar en una instancia separada de Tomcat para que pueda reiniciar esa instancia sin afectar las otras aplicaciones.

2

Sin acceso a la aplicación de administrador, no puede hacerlo. Si puede obtener acceso a la aplicación de administrador y aún desea usar la línea de comando en lugar de su navegador web, puede probar este command-line script for managing tomcat llamado tomcat-manager. Requiere Python, pero te permite hacer cosas de una cáscara de Unix:

$ tomcat-manager --user=admin --password=newenglandclamchowder \ 
> http://localhost:8080/manager/ reload /myapp 

y:

$ tomcat-manager --user=admin --password=newenglandclamchowder \ 
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war 
+0

¿Se puede habilitar el administrador solo para localhost? – andho

17

Así es como lo hago:

  1. Asegúrese de que tiene el usuario con rol de "gestor de scripts" en su base de datos de usuarios de tomcat. Que por lo general significa que usted tiene línea como ésta en su ${TOMCAT}/conf/tomcat-users.xml:
<user username="admin" password="secret" roles="manager-gui,manager-script"/> 

De lo contrario, obtendrá un error de 403 debido a la protección de páginas web de falsificación de petición (CSRF).

  1. Uso curl o cualquier herramienta de línea de comandos que te gusta obtener la URL <yourserver>/manager/text/reload?path=/<context_path>:

    curl --user user:secret http://localhost:8080/manager/text/reload?path=/mypath 
    
+0

¡Funcionó! ¡¡Gracias!! – JRichardsz

+0

Dijo específicamente que no tiene el administrador FWIW ... – rogerdpack

+0

Una búsqueda en Google todavía me mostró este hilo y esto es lo que estaba buscando – Kunal

10

sé que estoy tarde a la fiesta, sino una Un pequeño truco que puede hacer para volver a cargar la aplicación desde la línea de comando es ir al archivo web.xml de la aplicación y simplemente tocarlo.

touch web.xml

Tomcat vuelve a cargar la aplicación cada vez que se da cuenta de un cambio en este archivo, si lo único que toca, usted no está realmente modificando el archivo, la fecha y hora.

+0

Esto es cierto solo si tiene el atributo 'autoDeploy = true' en su' 'elemento (por defecto). –

+0

Creo que quieres decir que esto vuelve a implementar la aplicación. Si vas y cambias un archivo de propiedad en el directorio de guerra explotado y luego tocas la guerra, volverá a desplegarse, restableciendo todos tus cambios con los que originalmente estaban en guerra. – jbu

Cuestiones relacionadas