質問: apache tomcatにてWebアプリを構築しています。 下記手順を行ったところ見慣れないエラーが発生してしまい、ページが開けなくなってしまいました。 1JSPとJAVAを配置しているフォルダAをZIPに圧縮(バックアップとして) 2フォルダAの名前をフォルダBへ変更 3ZIPを解凍しフォルダAを配置 2については、フォルダA内のJPSを変更したが、うまく動作しないためフォルダ名を変更して一時退避。 3については、ZIPの解凍にて元のフォルダAの状態に戻そうとした という経緯になります。 下記はエラー文です。 --- type 例外レポート メッセージ JSPのクラスをコンパイルできません: 説明 The server encountered an internal error that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: An error occurred at line: 1 in the generated java file The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files An error occurred at line: 1 in the generated java file The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469) org.apache.jasper.compiler.Compiler.compile(Compiler.java:378) org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) --- また、更新を何度か繰り返すとエラー文が変わり下記のようなものになるときもあります。 --- type 例外レポート メッセージ java.lang.ClassNotFoundException: org.apache.jsp.hoge_jsp 説明 The server encountered an internal error that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.hoge_jsp org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 原因 java.lang.ClassNotFoundException: org.apache.jsp.hoge_jsp java.net.URLClassLoader.findClass(Unknown Source) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 注意 原因のすべてのスタックトレースは、Apache Tomcat/7.0.32のログに記録されています --- 足りない情報等ありましたら 是非教えていただければと思います。 宜しくお願いいたします。
回答: 解決できるかどうかは不明ですが、Tomcatなどへ搭載済みのWebアプリケーションの名前を変える場合や、zip圧縮する場合は、いったんTomcatを停止してから行わないと、自動的にリロードされ、中途半端な状態で起動しようとしてエラーが出ます。 Tomcatを一旦停止し、EclipseからプロジェクトのクリーンとTomcatのワークディレクトリをクリーンしてからTomcatを起動すると解決するかもしれません。