2010-07-29 9 views
13

Sono abbastanza nuovo per Tomcat. Sono appena riuscito a creare un progetto ed esportarlo come file WAR. Ho provato a copiare manualmente un file WAR nella cartella Tomcat e poi a riavviare. Ha creato la struttura delle cartelle e tutto, ma ottengo un codice di stato 404 quando provo a raggiungere l'applicazione. Ho provato a distribuirlo attraverso il pannello di amministrazione di Tomcat, ma sto vedendo lo stesso comportamento. Sto facendo qualcosa di fondamentalmente sbagliato?La distribuzione di un file WAR mi fornisce un codice di stato 404 su Tomcat?

+0

Qual è il tuo 'request.getContextPath()'? Stai facendo questo 'http: // localhost: 8080/ContextPath /' (dove contextPath è 'request.getContextPath()'. Se lo sei, quindi controlla il tuo web.xml per la tua configurazione. –

+0

Scusa se questo è uno sciocco domanda: se non riesco a distribuire l'app, come posso eseguirla a questo punto? – Legend

+1

Cerca nel file di registro Forse c'è un'eccezione quando l'app viene distribuita – ifischer

risposta

0

Hai provato

localhost:8080/app 

supponendo che il file di guerra è app.war?

modifica per commento - quindi il tuo web.xml è rovinato.

+1

Yeap ... Questo mi sta dando il codice 404. Se provo solo' localhost: 8080' mi dà la pagina di introduzione ... – Legend

3

La mia ipotesi migliore è che non hai configurato i file di benvenuto nel tuo web.xml. Se vai su/app/devi avere qualche file predefinito disponibile. In genere, le persone hanno creato un index.html o hanno le impostazioni del file di benvenuto per indirizzare l'utente al jsp corretto.

8

Supponendo di avere privilegi completi con l'installazione di Tomcat, provare ad andare a http://localhost:8080/manager/html/, se non si conosce la password per entrare in quella zona, cercare il file nella directory tomcat-users.xml${tomcat-installation}/conf, e che dovrebbe avere. Se non ha inserzioni in esso poi si vuole aggiungere una voce come la seguente ad esso:

<user username="username" password="password" roles="admin,manager" /> 

vedere se l'applicazione si presenta in quello schermo, e se lo fa, cliccare sul link e vedere se che ti porta ovunque In caso contrario, suggerisco di seguire il consiglio di ifishers e di esaminare i file di registro per vedere se elenca eventuali errori.

Ma per farla breve, molto probabilmente qualcosa è avvitato con il vostro progetto web.xml

+0

Anche io sto affrontando lo stesso problema ma solo durante la distribuzione dell'app per il 1a volta come app di root. Se riavvio il server, sono ab le per accedere alla pagina di destinazione dell'app. Ho provato il tuo approccio e sono stato reindirizzato alla home page dell'app facendo clic sul link in URL "http: // localhost: 8080/manager/html /" ..... Qualche idea su cosa sto facendo male ?? – Lucy

1

Ho lo stesso problema. Il mio problema è il nome della mia applicazione e il nome del file di guerra sono diversi. Ho cambiato il nome del file di guerra nel nome della mia applicazione.

Qui, quando viene distribuita l'applicazione, tomcat estrae automaticamente il file di guerra con lo stesso nome. Nel mio caso il mio nome di servizio è my-web-service (ovvero https://localhost:8080/my-web-service/) e il mio nome del file di guerra è MY-java-connector-0.0.1-SNAPSHOT.war (questo è il nome della mia cartella di progetto). Ora Tomcat sta cercando la cartella my-web = service e trova la cartella epicor-java-connector-0.0.1-SNAPSHOT. quindi rinomina la cartella in my-web = service.war e funziona.

2

Ho avuto lo stesso problema, il mio problema era che stavo copiando il file tramite sftp direttamente nella directory webapps di tomcat che potrebbe aver causato un problema di polling che lo ha fatto non distribuire correttamente. Tomcat controlla la directory webapps e quando vede il .xml si incrina e fa la sua cosa, il problema è che forse tutto non è stato ancora copiato. :(

È preferibile creare una cartella di gestione temporanea, spostare o copiare la guerra in quella cartella e quindi utilizzare il comando linux mv per spostarlo nelle applicazioni web - mv è atomico, quindi tomcat non eseguirà nulla fino al completamento dell'operazione.

Magico.

merito va a un post molto molto casuale che ho trovato su javarance che a loro volta portano a: http://pub.admc.com/howtos/tomcat/ch02.html#stagedir-section

Spero che questo aiuti qualcun altro :)

0

Ho avuto lo stesso problema con la Tomcat ed appena riparato forzando il mio IDE a creare un file web.xml. Il mio mancava. Avrebbe implementato il progetto ma avrei comunque ottenuto l'errore 404. Ho letto diversi di questi tutorial ma senza risultati. Ho letto da qualche parte che il file web.xml doveva essere configurato correttamente. Sono andato a cercare il web.xml nella cartella WEB-INF e non c'era nessuna cartella e nessun file web.xml. Ho fatto un rapido google su come creare usando il mio IDE e poi ho compilato il mio programma con l'output web.xml, e ha risolto il problema per me. Spero possa aiutare. Saluti!

1

Ho incontrato anche questo problema.

La mia soluzione semplice rotonda è quella di cambiare percorso docBase.

problema si verifica quando

docBase=".../tomcat/webapps/app_name.war"; 

problema risolto con

docBase=".../tomcat/webapps/app_foldername/web" 
0

FWIW Ho avuto questo problema e riparato scoprendo che stava accedendo l'ospite sbagliato, come "http://wronghost:8080/why_is_this_war_not_there", quindi se si dice " XX.war implementato con successo "in catalina.out/localhost. *. Out che potrebbe essere un suggerimento per i follower.

Problemi correlati