2013-08-21 20 views
24

Sono nuovo a Tomcat su Windows. Sto cercando di distribuire il mio progetto Java che ho realizzato in RHEL 5 usando Tomcat. Ora voglio eseguire quel progetto sulla finestra. Così ho copiato e incollato la mia cartella di progetto all'interno del Web Tomcat Apps Directorymessaggio java.lang.IllegalStateException: Nessuna cartella di output

i.e C:\Program Files\apache-tomcat-6.0.37\webapps 

ma non sono in grado di eseguire il progetto come sto affrontando sotto errore durante l'apertura la mia prima pagina di login. Devo apportare ulteriori modifiche al codice o al file web.xml poiché ora lo sto distribuendo su Windows?

type Exception report 

message java.lang.IllegalStateException: No output folder 

**Description** The server encountered an internal error that prevented 
it from fulfilling this request. 

Exception 

org.apache.jasper.JasperException: java.lang.IllegalStateException: No output folder 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:538) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
root cause 

java.lang.IllegalStateException: No output folder 
    org.apache.jasper.JspCompilationContext.createOutputDir(JspCompilationContext.java:678) 
    org.apache.jasper.JspCompilationContext.getOutputDir(JspCompilationContext.java:197) 
    org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilationContext.java:514) 
    org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:453) 
    org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:399) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.37 logs. 
+2

Questo è per Tomcat 7, ma penso che è lo stesso problema che avete: http://stackoverflow.com/questions/10577494/tomcat-installation-exception – morgano

+2

Installa tomcat fuori dalla cartella dei programmi o dai all'utente che esegue tomcat i diritti di scrittura in questa cartella. Windows disabilita l'accesso diretto ai file alla cartella programmi per utenti normali per default – Matthias

+0

WOW .... quella soluzione ha funzionato per me :) :) grazie mille speedday .. –

risposta

42

Ho dato accesso completo alla mia directory Tomcat. Ora non ho ricevuto questo errore. Grazie !!

+9

Ho iniziato Tomcat come 'root' ha risolto il problema. – Keerthivasan

13

Ero di fronte al problema simile su Ubuntu 14.04. Stavo facendo qualche analisi e ho lasciato cadere la cartella di lavoro manualmente. Poi mentre eseguivo il server tomcat stavo ottenendo la stessa eccezione. Il problema era che quando si accede all'applicazione manager di tomcat, richiede la pagina jsp per visualizzare il contenuto e la pagina JSP viene renderizzata dal file di classe generato che risiede nella cartella work/Catalina/localhost/.....

Ho creato manualmente la directory di lavoro, tuttavia il problema non è stato ancora risolto.

Poi ho capito che, poiché ho creato manualmente la directory di lavoro, l'utente di tomcat7 non aveva il permesso di scrivere su quella directory. Cambiato il proprietario per directory di lavoro dalla radice alla tomcat7

sudo chown tomcat7 work

Tomcat riavvio service tomcat restart.

Problema risolto.

Spero che questo aiuti

5

Se siete su Linux/Unix e di fronte al problema:

PASSI:

Nota L'utente e il servizio, nel mio caso è stato Tomcat vostro potrebbe essere qualsiasi cosa else ...

1. mkdir work 
2. sudo chown tomcat work 
3. service tomcat6 restart 
1

Come tomcat iniziale come account di root, la cartella di lavoro è già stata creata. Si esegue tomcat come account tomcat, poiché l'account tomcat non ha l'autorizzazione per la cartella ./work, quindi lancia l'eccezione. Per risolverlo, ps rimuovere ./work, quindi riavviare tomcat dall'utente tomcat.

+0

risultati in 'Avvio del motore servlet Tomcat: tomcat8/etc/init.d/tomcat8: 202: /etc/init.d/tomcat8: impossibile creare /var/lib/tomcat8/work/catalina.policy...y inesistente' quindi non cerca più di creare la directory di lavoro ... devi crearla da sola. e dopo questo si finisce con 'IllegalStateException: No output folder' finché non si crea la directory' Catalina' da solo. – user3338098

1

Controlla il tuo spazio su disco?

Ho anche ricevuto questo errore quando la mia/partizione era piena. Liberare spazio su disco ha rimosso questo errore per me.

0

dare il pieno permesso alla directory tomcat e quindi riavviare il servizio. Funzionerà per me, spero che questo funzioni anche voi.

0

Può essere causa della mancanza di autorizzazioni di scrittura nella directory della cache (/ var/lib/tomcat6 su Linux).Se questo è il vostro caso, utilizzare i seguenti comandi per concedere l'accesso completo e riavviare Tomcat:

sudo /etc/init.d/tomcat6 stop 
sudo chown -R tomcat6 /var/lib/tomcat6 
sudo chmod -R 777 /var/lib/tomcat6 
sudo /etc/init.d/tomcat6 start 

Se questo è stato lavorando per voi in precedenza, a volte la directory di lavoro è semplicemente in cattivo stato ed è possibile risolvere il problema semplicemente cancellandolo e permettendo a Tomcat di crearne uno nuovo da zero.

0

Provare a riavviare il server completamente (se applicabile)