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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

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

Apache

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

Java

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

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

2回答

25247閲覧

apache tomcatにて500エラー

ryo-taro-

総合スコア6

JSP

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

Apache

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

Java

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

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2017/02/03 15:40

編集2017/02/03 15:52

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のログに記録されています


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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

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フォルダ内の削除が必要なのかもしれません。

投稿2017/03/01 01:51

ryo-taro-

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

投稿2017/02/03 23:25

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryo-taro-

2017/02/05 07:18

ご回答ありがとうございます! ご指摘いただいたとおり、Tomcatを停止する前に圧縮やフォルダ名の変更を行っておりました。 APサーバのTomcatを停止後、workフォルダ内を全削除、 ローカルのEclipseにてプロジェクトのクリーンを実施し、JSP・JAVA・CLASSファイルをAPサーバへ搭載。 その後Tomcatを再起動しましたが、同じエラーが発生してしまいました。 次はeclipseやjavaのバージョンについて再確認しようと思っております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問