2012-02-24 13 views
9

Ho creato una guerra e l'ho implementata nella mia cartella $ CATALINA_HOME/webapps bene. Quindi volevo testare la configurazione per puntare a una guerra in una posizione arbitraria come c: \ tmp \ mywar.war. Ecco cosa ho inserito nel file server.xml all'interno di $ CATALINA_HOME/conf.Contesto mapping Tomcat tramite server.xml

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

Tomcat restituisce 404 quando provo a caricare localhost: 8080/bla. Se punto docBase alla guerra esplosa, invece, funziona bene. Cosa mi manca qui?

+0

Riesci a vederlo distribuito nella gestione degli amministratori Tomcat? – Cratylus

+0

Sì, il suo distribuito come/blah ma l'accesso restituisce solo un 404 –

+1

Qualcosa nei registri? – mindas

risposta

0

non lo fanno, questo approccio è discouraged da Tomcat 6:

Per Tomcat 6, a differenza di Tomcat 4.x, non è consigliabile posizionare gli elementi direttamente nel file server.xml. Questo perché rende la configurazione del contesto più invasiva poiché il file conf/server.xml principale non può essere ricaricato senza riavviare Tomcat.

+0

Se si inseriscono le impostazioni di contesto in $ CATALINA_HOME/conf/localhost/blah.xml, si elimina la configurazione su ogni app ridistribuita. A meno che non ci sia un modo per disabilitare questo comportamento, qualunque vantaggio si ottenga mantenendo la configurazione fuori dal server.xml è superato dalla necessità di sostituire manualmente le configurazioni xml ogni volta. –

+0

Questo è il comportamento previsto ed è corretto. Poiché il file è associato a un contesto, ** deve essere eliminato con una ridistribuzione. –

4

È meglio inserire la configurazione del contesto in un singolo file in /META-INF/context.xml all'interno dei file dell'applicazione.

Si consiglia di non posizionare gli elementi direttamente nel file server.xml. Questo perché rende la configurazione del contesto più invasiva poiché il file conf/server.xml principale non può essere ricaricato senza riavviare Tomcat.

È possibile controllare i dettagli nel documento Tomcat7 qui: http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Defining_a_context

4

Se si vuole avere un sito disponibile all'indirizzo http://myhost:8080/myTestContext, inserire il seguente nel $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

Ho appena incontrato questo problema. Un po 'imbarazzante è stato perché ho sbagliato un percorso!

È possibile verificarlo controllando i log di errore (quelli standard) sotto

[Tomcat directory di installazione]/logs

Vedrai qualcosa che assomiglia a questo:

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

Un'ulteriore nota (non verrà visualizzato un messaggio di errore per questo) è che se si sta distribuendo una guerra anziché una webapp esplosa è necessario specificare il percorso del file 210 e non solo contiene la directory.

Problemi correlati