質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Java

    13803questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Apache

    1820questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • JSP

    932questions

    JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

  • Tomcat

    562questions

apache tomcatにて500エラー

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,480

ryo-taro-

score 2

apache tomcatにてWebアプリを構築しています。

下記手順を行ったところ見慣れないエラーが発生してしまい、ページが開けなくなってしまいました。

①JSPとJAVAを配置しているフォルダAをZIPに圧縮(バックアップとして)
②フォルダAの名前をフォルダBへ変更
③ZIPを解凍しフォルダAを配置

②については、フォルダA内のJPSを変更したが、うまく動作しないためフォルダ名を変更して一時退避。
③については、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のログに記録されています


足りない情報等ありましたら
是非教えていただければと思います。

宜しくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

今回の現象について、
「JavaとTomcatのバージョン」と
「TomcatのWorkフォルダ」が関係していたようです。

Java1.8.0_111とTomcat 7.0.32を使用していましたが、
Tomcat 7.0.32に内蔵されていたECJ (Eclipse Compiler for Java)のバージョンが低く
Java8の環境で正常にコンパイルできていない事が原因でした。

解決方法としては「Tomcatをバージョンアップ」「Javaのバージョンダウン」があります。

Tomcatの有効なバージョンについては不明ですが、
公式のChangelogに「Tomcat 7.0.34時点でEclipse JDT Compiler 4.2.1へアップデート」と記載されていたので、恐らくTomcat 7.0.34以上のバージョンであれば、今回の問題は解決すると思われます。

Javaのバージョンダウンについては、
Java7以下へ落とせば解決すると思われます。

もう一つの原因ですが、TomcatのWorkフォルダに古いコンパイル済みのJavaが残っていたため
Java1.8.0_111とTomcat 7.0.32を使用していても動作していたようです。

しかし、今回アプリケーションのフォルダに変更がかかったため、
再コンパイルが必要となり、コンパイルのエラーが発生しました。

上記の事から、JavaやTomcatのバージョンアップの際は
Workフォルダ内の削除が必要なのかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

解決できるかどうかは不明ですが、Tomcatなどへ搭載済みのWebアプリケーションの名前を変える場合や、zip圧縮する場合は、いったんTomcatを停止してから行わないと、自動的にリロードされ、中途半端な状態で起動しようとしてエラーが出ます。

Tomcatを一旦停止し、EclipseからプロジェクトのクリーンとTomcatのワークディレクトリをクリーンしてからTomcatを起動すると解決するかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/05 16:18

    ご回答ありがとうございます!
    ご指摘いただいたとおり、Tomcatを停止する前に圧縮やフォルダ名の変更を行っておりました。

    APサーバのTomcatを停止後、workフォルダ内を全削除、
    ローカルのEclipseにてプロジェクトのクリーンを実施し、JSP・JAVA・CLASSファイルをAPサーバへ搭載。
    その後Tomcatを再起動しましたが、同じエラーが発生してしまいました。

    次はeclipseやjavaのバージョンについて再確認しようと思っております。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    13803questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Apache

    1820questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • JSP

    932questions

    JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

  • Tomcat

    562questions