2012-02-24 17 views
9

Creé una guerra y la implementé en mi carpeta $ CATALINA_HOME/webapps muy bien. Luego quise probar la configuración para señalar una guerra en una ubicación arbitraria, como c: \ tmp \ mywar.war. Esto es lo que puse en el archivo server.xml dentro de $ CATALINA_HOME/conf.contexto de mapeo de Tomcat a través de server.xml

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> 
<Context path="/blah" docBase="h:/tmp/mywar.war" reloadable="true" /> 
</Host> 

Tomcat devuelve 404 cuando intento cargar localhost: 8080/blah. Si apunto docBase a la guerra de explosión en su lugar, funciona bien. ¿Que me estoy perdiendo aqui?

+0

¿Puedes verlo implementado en la administración de administración de Tomcat? – Cratylus

+0

Sí, se implementó como/blah pero al acceder solo se devuelve un 404 –

+1

¿Hay algo en los registros? – mindas

Respuesta

0

no hacen eso, este enfoque es discouraged de Tomcat 6:

Para Tomcat 6, a diferencia de Tomcat 4.x, no se recomienda colocar los elementos directamente en el archivo server.xml. Esto se debe a que hace que la modificación de la configuración de contexto sea más invasiva ya que el archivo conf/server.xml principal no se puede volver a cargar sin reiniciar Tomcat.

+0

Si coloca la configuración de contexto en $ CATALINA_HOME/conf/localhost/blah.xml, elimina la configuración en cada aplicación de redespliegue. A menos que haya una forma de desactivar este comportamiento, cualquier beneficio que obtenga manteniendo la configuración fuera de server.xml se ve compensado por la necesidad de reemplazar las configuraciones xml de forma manual cada vez. –

+0

Este es el comportamiento previsto y es correcto. Como el archivo está asociado a un contexto ** tiene ** que eliminarse con una redistribución. –

4

Será mejor que ponga la configuración de contexto en un archivo individual en /META-INF/context.xml dentro de los archivos de la aplicación.

NO se recomienda colocar elementos directamente en el archivo server.xml. Esto se debe a que hace que la modificación de la configuración de contexto sea más invasiva ya que el archivo conf/server.xml principal no se puede volver a cargar sin reiniciar Tomcat.

Puede consultar más detalles en el documento Tomcat7 aquí: http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Defining_a_context

4

Si usted quiere tener un sitio disponible en http://myhost:8080/myTestContext, poner el siguiente en $Catalina_home$/conf/localhost/whateveryoulike.xml

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> 
    <Context deployOnStartup="true" docBase="C:\path\to\your\docBase\" path="/myTestContext" reloadable="false"> 
    <Manager pathname=""/> 
</Context> 
0

Me acabo de encontrar con esta problema. ¡Un poco vergonzoso fue porque me equivoqué!

Puede verificar esto en los registros (las más bajo error estándar)

[directorio de instalación de Tomcat]/logs

Verás algo que se parece a esto:

Jun 16, 2014 12:34:10 PM org.apache.catalina.core.StandardContext resourcesStart SEVERE: Error starting static Resources java.lang.IllegalArgumentException: Document base ... does not exist or is not a readable directory

Una nota adicional (no obtendrá un mensaje de error para esto) es que si está desplegando una guerra en lugar de una aplicación web explotada, debe especificar la ruta del archivo y no solo contiene el directorio.

Cuestiones relacionadas