it-swarm.com.de

message Java.lang.IllegalStateException: Kein Ausgabeordner

Ich bin neu bei Tomcat unter Windows. Ich versuche, mein Java-Projekt, das ich in RHEL 5 mit Tomcat erstellt habe, bereitzustellen. Jetzt möchte ich das Projekt auf Windows ausführen. Also habe ich meinen Projektordner in das Tomcat Web-Apps-Verzeichnis kopiert und eingefügt

i.e C:\Program Files\Apache-Tomcat-6.0.37\webapps

ich kann das Projekt jedoch nicht ausführen, da beim Öffnen meiner ersten Anmeldeseite ein Fehler auftritt. Muss ich weitere Änderungen an der Code- oder web.xml-Datei vornehmen, da ich sie jetzt unter Windows bereitstelle?

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.
31

Ich habe vollständigen Zugriff auf mein Tomcat-Verzeichnis ... gegeben. Jetzt erhalte ich diese Fehlermeldung nicht. Danke.

51

Ich hatte ein ähnliches Problem auf Ubuntu 14.04 . Ich führte einige Analysen durch und legte den Arbeitsordner manuell ab. Beim Ausführen des Tomcat-Servers erhielt ich dann die gleiche Ausnahme. Wenn wir auf die Manageranwendung von Tomcat zugreifen, ist zur Anzeige des Inhalts eine JSP-Seite erforderlich, und die JSP-Seite wird aus der generierten Klassendatei dargestellt, die sich im Ordner work/Catalina/localhost/.... befindet.

Ich habe das Arbeitsverzeichnis manuell erstellt, das Problem wurde jedoch immer noch nicht gelöst.

Dann wurde mir klar, dass der Tomcat7-Benutzer nicht die Berechtigung hatte, in dieses Verzeichnis zu schreiben, weil ich das Arbeitsverzeichnis manuell erstellt hatte. Der Besitzer des Arbeitsverzeichnisses wurde von root in Tomcat7 geändert

Sudo chown Tomcat7 work

starten Sie Tomcat service Tomcat restart erneut.

Problem gelöst.

Hoffe das hilft

18
Sanjay Bharwani

Wenn Sie Linux/Unix verwenden und sich dem Problem stellen müssen:

SCHRITTE:

Beachten Sie den Benutzer und den Dienst. In meinem Fall könnte es sich bei Tomcat um etwas anderes handeln.

1. mkdir work
2. Sudo chown Tomcat work  
3. service Tomcat6 restart
5
Fred Ondieki

Überprüfen Sie Ihren Festplattenspeicherplatz.

Ich habe diesen Fehler auch erhalten, als meine/-Partition gefüllt war. Durch die Freigabe von Speicherplatz wurde dieser Fehler für mich entfernt.

1
AndyM

Beim ersten Start von Tomcat als Root-Konto wurde der Arbeitsordner bereits erstellt. Sie führen Tomcat als Konto Tomcat aus, da das Tomcat-Konto keine Berechtigung für den Ordner "./work" hat. Führen Sie die Ausnahme aus. Um dies zu beheben, entfernen Sie ps ./work und starten Sie Tomcat anschließend vom Tomcat-Benutzer neu.

1
Stony

Möglicherweise liegen keine Schreibberechtigungen für das Cache-Verzeichnis vor (/ var/lib/Tomcat6 unter Linux). Verwenden Sie in diesem Fall die folgenden Befehle, um vollständigen Zugriff zu gewähren und Tomcat neu zu starten:

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

Wenn dies zuvor für Sie funktioniert hat, befindet sich das Arbeitsverzeichnis manchmal in einem fehlerhaften Zustand. Sie können das Problem beheben, indem Sie es einfach löschen und Tomcat ein neues Verzeichnis erstellen.

0
naXa

Versuchen Sie, den Server vollständig neu zu starten (falls zutreffend).

0
Glogo

geben Sie dem Tomcat-Verzeichnis die volle Berechtigung und starten Sie den Dienst neu. Es funktioniert für mich, ich hoffe, dass Sie auch damit arbeiten können.

0

Ich habe die Berechtigungen für das Arbeitsverzeichnis geändert und es funktioniert ...

Schritte:
1. Wechseln Sie in das Verzeichnis, in dem Tomcat vorhanden ist
2. Führen Sie den Befehl aus:
Sudo chmod 777 work

0
Shubhangi