WindowsでTomcatを初めて使用します。 Javaプロジェクトを展開しようとしています。このプロジェクトをウィンドウで実行したいので、Tomcat Webアプリ内にプロジェクトフォルダーをコピーして貼り付けますディレクトリ
i.e C:\Program Files\Apache-Tomcat-6.0.37\webapps
しかし、最初のログインページを開いているときに以下のエラーに直面しているため、プロジェクトを実行できません。 Windowsにコードを展開する際に、コードまたはweb.xmlファイルをさらに変更する必要がありますか?
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.
Tomcatディレクトリへの完全なアクセスを許可しました。今、私はこのエラーを受け取っていません。ありがとう!!
私はubuntu 14.04で同様の問題に直面していました。何らかの分析を行っていて、作業フォルダーを手動で削除しました。次に、Tomcatサーバーの実行中に同じ例外が発生していました。問題は、Tomcatのマネージャーアプリケーションにアクセスするときに、コンテンツを表示するためにjspページが必要であり、JSPページがwork/Catalina/localhost/....フォルダーにある生成されたクラスファイルからレンダリングされることでした。
作業ディレクトリを手動で作成しましたが、問題は解決しませんでした。
作業ディレクトリを手動で作成したため、Tomcat7ユーザーにはそのディレクトリに書き込む権限がありませんでした。作業ディレクトリの所有者をルートからTomcat7に変更しました
Sudo chown Tomcat7 work
tomcatを再起動service Tomcat restart
。
問題が解決しました。
お役に立てれば
Linux/Unixで問題に直面している場合:
手順:
ユーザーとサービスに注意してください、私の場合はTomcatでしたが、他のものでもかまいません...
1. mkdir work
2. Sudo chown Tomcat work
3. service Tomcat6 restart
ディスク容量を確認しますか?
/パーティションがいっぱいになったときにもこのエラーが発生しました。一部のディスク領域を解放すると、このエラーは解消されました。
最初にTomcatをルートアカウントとして起動すると、作業フォルダーがすでに作成されています。 Tomcatアカウントにはフォルダ./workに対する権限がないため、TomcatアカウントとしてTomcatを実行しているため、例外をスローします。それを解決するには、ps remove ./workを実行し、TomcatユーザーによってTomcatを再起動します。
作業ディレクトリのpermissionsを変更しましたが、機能しています...
手順:
1。 Tomcatが存在するディレクトリに移動します
2。コマンドを実行します。Sudo chmod 777 work
キャッシュディレクトリ(Linuxでは/ var/lib/Tomcat6)への書き込み権限がないことが原因である可能性があります。この場合、次のコマンドを使用してフルアクセスを許可し、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
以前にこれが機能していた場合、作業ディレクトリが単純に悪い状態にある場合があります。作業ディレクトリを削除し、Tomcatがゼロから新しいディレクトリを作成できるようにすることで修正できます。
サーバーを完全に再起動してください(該当する場合)
tomcatディレクトリに完全な許可を与えてからサービスを再起動します。それは私にとってはうまくいくでしょう、これがあなたにもうまくいくことを願っています。