2012-07-30 24 views
12

Estoy usando tomcat para implementar mis aplicaciones, me gustaría implementarlo como una sola guerra para que el servidor sirva varias rutas de contexto.¿Cómo puedo mapear múltiples contextos al mismo archivo war en Tomcat?

Actualmente tengo app1.war y app2.war, pero ambas tienen el mismo contenido, solo el nombre es diferente para acceder a través de http: /// app1 y http: ///app1.war. Pero me gustaría hacer esto, implementar App.war y acceder a ella mediante la ruta de contexto app1 y app2. ¿Es posible hacer en Tomcat? Por favor, ayúdenme de este

+1

¿Debería seguir siendo la misma aplicación web (compartiendo los mismos datos locales) o deberían las aplicaciones web realmente ser instancias separadas? – Daniel

Respuesta

20

Esto se puede hacer de varias maneras. Creo que de esta manera es el más sencillo:

  1. Mover el archivo WAR fuera del directorio webapps/ auto-desplegar
  2. Extracto META-INF/context.xml de su archivo WAR. Si su GUERRA no tiene un archivo META-INF/context.xml, sólo tiene que utilizar un archivo con nada más que en ella <Context />
  3. Copiar este archivo en el directorio de Tomcat conf/[service]/[host]/ ya que tanto app1.xml y app2.xml. (El [servicio] suele ser "Catalina" y el [host] es el nombre que tenga su host virtual: en una configuración predeterminada de Tomcat, el nombre de host es siempre "localhost").
  4. Editar tanto app1.xml y app2.xml y establecer el atributo docBase para el elemento <Context> para que apunte al archivo WAR movió en el paso # 1
  5. volver a iniciar Tomcat

Esto debería darle una sola física Archivo WAR y contextos múltiples desplegados desde él.

Aunque Tomcat admite esta configuración, recomiendo que no: el espacio en disco es barato, no cambia nada en tiempo de ejecución (aún obtiene dos copias de todo en la memoria) y pierde la flexibilidad de desplegar diferentes archivos WAR en diferentes contextos y/o actualizándolos por separado sin modificar la configuración de ambos contextos.

Si desea mi consejo, conserve los archivos WAR duplicados.

+0

Creo que estoy de acuerdo con seguir con los WAR duplicados, pero estoy en una situación similar y encuentro que tener un artefacto único para avanzar a través de una canalización de entrega continua es muy claro. También vale la pena mencionar que si coloca WAR fuera de la aplicación de host, no se pueden desempaquetar (a partir de Tomcat v7), así que si tiene una aplicación (como yo, por desgracia) que requiere desembalaje, lo anterior no es una opción. – Conan

+1

Tales WAR * pueden * desempaquetarse, pero tendrá que descomprimirlos usted mismo. Es posible escribir todo esto, por supuesto. –

Cuestiones relacionadas