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.
J'ai donné un accès complet à mon annuaire Tomcat .
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
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
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.
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.
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.
Essayez de redémarrer complètement le serveur (le cas échéant)
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.
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