web-dev-qa-db-fra.com

message Java.lang.IllegalStateException: Aucun dossier de sortie

Je suis nouveau sur Tomcat sous Windows. J'essaie de déployer mon projet Java créé dans RHEL 5 avec Tomcat. Maintenant, je veux exécuter ce projet sur window. J'ai donc copié et collé mon dossier de projet dans le répertoire des applications Web Tomcat.

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

mais je ne parviens pas à exécuter le projet car je rencontre l'erreur ci-dessous lors de l'ouverture de ma première page de connexion. Dois-je apporter d'autres modifications au code ou au fichier web.xml, car je le déploie maintenant sous 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.
31
Harishsingh Thakur

J'ai donné un accès complet à mon annuaire Tomcat .

51
Harishsingh Thakur

Je faisais face à un problème similaire sur Ubuntu 14.04 . Je faisais une analyse et ai abandonné le dossier de travail manuellement. Ensuite, lors de l’exécution du serveur Tomcat, je recevais la même exception. Le problème était que, lorsque nous accédons à l'application de gestion de Tomcat, elle nécessite que la page jsp en affiche le contenu, et que la page JSP soit rendue à partir du fichier de classe généré situé dans le dossier work/Catalina/localhost/....

J'ai créé le répertoire de travail manuellement, mais le problème n'était toujours pas résolu.

Ensuite, je me suis rendu compte que, parce que j'avais créé manuellement le répertoire de travail, l'utilisateur Tomcat7 n'était pas autorisé à écrire sur ce répertoire. Changement du propriétaire du répertoire de travail de la racine en Tomcat7

Sudo chown Tomcat7 work

redémarrez Tomcat service Tomcat restart.

Problème résolu.

J'espère que cela t'aides

18
Sanjay Bharwani

Si vous êtes sous Linux/Unix et que vous rencontrez le problème:

PAS:

Notez l'utilisateur et le service, dans mon cas c'était Tomcat le vôtre pourrait être n'importe quoi d'autre ...

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

Vérifiez votre espace disque?

J'ai aussi eu cette erreur quand ma/partition s'est remplie. Libérer de l'espace disque a supprimé cette erreur pour moi.

1
AndyM

Lorsque vous démarrez Tomcat en tant que compte racine, le dossier de travail a déjà été créé. Vous exécutez Tomcat en tant que compte Tomcat, car le compte Tomcat n’est pas autorisé à accéder au dossier ./work. Lancez donc l’exception. Pour le résoudre, supprimez ./work par ps, puis redémarrez Tomcat par l'utilisateur Tomcat.

1
Stony

Cela peut être dû au manque d'autorisations d'écriture dans le répertoire de cache (/ var/lib/Tomcat6 sous Linux). Si tel est votre cas, utilisez les commandes suivantes pour accorder un accès complet et redémarrer 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

Si cela fonctionnait pour vous précédemment, le répertoire de travail est parfois simplement dans un mauvais état et vous pouvez le réparer en le supprimant simplement et en permettant à Tomcat d'en créer un nouveau à partir de zéro.

0
naXa

Essayez de redémarrer complètement le serveur (le cas échéant)

0
Glogo

donnez l’autorisation complète au répertoire Tomcat puis redémarrez le service. Cela fonctionnera pour moi, j’espère que cela fonctionnera également pour vous.

0
Aman shrivastava

J'ai changé les permissions pour le répertoire de travail et ça marche ...

Pas:
1. Allez dans le répertoire où Tomcat est présent
2. Exécutez la commande:
Sudo chmod 777 work

0
Shubhangi