¿Cómo puedo decir, por ejemplo, a Tomcat que use una ruta de contexto específica cuando se le da mi archivo WAR?
Ejemplo: tengo un archivo war creado por maven build y el nombre resultante del archivo es bastante largo. Por lo tanto, no quiero que la aplicación Tomcat Manager use el nombre de archivo de la guerra como contexto.
El suministro de un context.xml en META-INF no produjo los resultados deseados
También encontré esto en la documentación para el path
atributo de Context
:
El valor de este campo no debe establecerse excepto cuando se define estáticamente un Contexto en server.xml, ya que se deducirá de los nombres de archivo utilizados para el archivo de contexto .xml o docBase.
Por lo tanto, no parece ser la forma correcta de decirle al servidor de aplicaciones cuál debería ser la ruta para mi WAR.
¿Más pistas?
Hay dos puntos importantes en la documentación del Context Container :
- En archivos individuales (con extensión ".xml") en el
$CATALINA_BASE/conf/[enginename]/[hostname]/
directorio. El nombre del archivo (menos la extensión .xml) se utilizará como ruta de contexto . Las rutas de contexto de varios niveles se pueden definir usando #, por ejemplo, foo # bar.xml para una ruta de contexto de / foo / bar. La aplicación web predeterminada se puede definir mediante un archivo llamado ROOT.xml.- Solo si no existe un archivo de contexto para la aplicación en
$CATALINA_BASE/conf/[enginename]/[hostname]/
, en un archivo individual/META-INF/context.xml
dentro de los archivos de la aplicación. Si la aplicación web está empaquetada como WAR/META-INF/context.xml
, se copiará$CATALINA_BASE/conf/[enginename]/[hostname]/
y se le cambiará el nombre para que coincida con la ruta de contexto de la aplicación . Una vez que este archivo existe, no se reemplazará si/META-INF/context.xml
se coloca un nuevo WAR con uno más nuevo en la base de aplicaciones del host.
Por lo tanto, cuando agrupa a META-INF/context.xml
, el archivo se renombra al nombre del WAR y este nombre se convierte en la ruta de contexto, independientemente de cualquiera path
definido en el Context
elemento.
Veo así dos opciones aquí:
Establezca el nombre de la guerra generada en un nombre más corto (sugiero usar <finalName>
over <warName>
which está obsoleto AFAIK):
<project>
...
<build>
<finalName>mycontext</finalName>
...
</build>
...
</project>
O use maven-tomcat-plugin
para la implementación y establezca la ruta de contexto en la configuración del complemento:
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<configuration>
<path>/mycontext</path>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras