【JSP】

JSPファイルがコンパイルできませんので、助けてください。
xxx_jsp.javaファイルがあるのは確認しました。

■環境
fedora8/jdk1.5.0_12/tomcat5.5.25

■エラー内容
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません:
JSP FileName:null
Java FileName:/usr/share/tomcat5/work/Catalina/localhost/ex//org/apache/jsp/exp_jsp.java

上記のようなエラー記述が複数行ある。

Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(jasper5-compiler-5.5.25.jar.so)
org.apache.jasper.compiler.ErrorDispatcher.javacError(jasper5-compiler-5.5.25.jar.so)
org.apache.jasper.compiler.JDTCompiler.generateClass(jasper5-compiler-5.5.25.jar.so)
org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.25.jar.so)
org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.25.jar.so)
org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.25.jar.so)
org.apache.jasper.JspCompilationContext.compile(jasper5-compiler-5.5.25.jar.so)
org.apache.jasper.servlet.JspServletWrapper.service(jasper5-compiler-5.5.25.jar.so)
org.apache.jasper.servlet.JspServlet.serviceJspFile(jasper5-compiler-5.5.25.jar.so)
org.apache.jasper.servlet.JspServlet.service(jasper5-compiler-5.5.25.jar.so)
javax.servlet.http.HttpServlet.service(tomcat5-servlet-2.4-api-5.5.25.jar.so)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/12/15 04:33:09
  • 終了:2007/12/16 15:51:17

ベストアンサー

id:mj99 No.2

mj99回答回数138ベストアンサー獲得回数382007/12/15 21:54:58

ポイント40pt

経験上の話ですが。

このエラーEclipce使ってるとよくでますね。

tools.jarによる問題です。

EclipceのTomcatPluginでTomcatを起動する場合、デフォルトではtools.jarのCLASSPATH指定がないので、tools.jarは$CATALINA_HOME/commom/libのものが使用されます。

そもそも$CATALINA_HOME/commom/libにtools.jarが無い場合もあります。

Tomcatで使用するJVM設定のCLASSPATHに(JDKのディレクトリの)/lib/tools.jarを追加してください。

http://eclipsewiki.net/eclipse/index.php?Tomcat%A5%D7%A5%E9%A5%B...

----

また違う観点として、

startup.shを使用している場合、

環境変数JAVA_HOMEを確認してください。JDKへ向いているでしょうか。

startup.shは環境変数CLASSPATHを読みません。catalina.shによって、CLASSPATHに$JAVA_HOME/lib/tools.jarが追加されます。

jsvcで自動起動している場合、

init.dあたりに仕込んだシェルを確認してください。CLASSPATHに???/lib/tools.jarを追加している個所があるはずです。ちゃんと存在するパスになっているでしょうか。

----

また違う観点として、

server.xmlをいじったでしょうか?

contextタグを追加している場合、workDir属性がjspの作業ディレクトリになります。

記述を確認してください。

また、

webapps下のex.xmlを自前で作成したでしょうか?

contextタグを追加している場合、workDir属性がjspの作業ディレクトリになります。

記述を確認してください。

id:toenobu

回答をありがとうございます。解決致しました。

/etc/sysconfig/tomcat5の内容を下記のとおりに変更すると、無事に動作しました。

【変更前】JAVA_HOME="/usr/lib/jvm/java"

【変更後】JAVA_HOME="/usr/java/jdk1.5.0_12"

thinkITの記事のJVM設定を参考にしました。

http://www.thinkit.co.jp/free/article/0708/2/5/

 

JVMやTOMCATのことをよく理解しておらず、なぜ動作したのかをわかっていません。

少しずつ勉強して、理解を深めていく予定です。

わからなかったら、再度、質問致しますので、よろしければ答えてください。

ありがとうございました。

2007/12/16 15:47:37

その他の回答(1件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/12/15 12:15:41

ポイント40pt

細かく調べずに回答しますが、経験上 JSP のコンパイラがエラーを出すのは以下の2パターン。

  • Tomcat の割り当てメモリが少なくてメモリ不足の場合。

@IT:チューニングのためのJava VM講座(後編)

  • JSP から生成した .java ファイルが大きすぎてコンパイルできない場合

.java ファイルにはファイルサイズの制限があったはず。

この場合 JSP ファイルを <jsp:include > タグなどを使用して分割するしかない。

あたりでしょうか。

id:toenobu

回答をありがとうございます。

JSPファイルの記述内容は日時出力するだけの内容なので、

ファイルサイズは200byte程度です。

なので、回答内容レベルに達してないところでの問題だと思っています。

エラー内容を見るとFileNameがNullとなっており、FileNameのPathが誤っています。

exのあとに"//"となっており、こちらが問題だと思っておりますが、訂正方法がわかりません。

【正】/usr/share/tomcat5/work/Catalina/localhost/ex/org/apache/jsp/exp_jsp.java

【誤】/usr/share/tomcat5/work/Catalina/localhost/ex//org/apache/jsp/exp_jsp.java

2007/12/15 13:42:58
id:mj99 No.2

mj99回答回数138ベストアンサー獲得回数382007/12/15 21:54:58ここでベストアンサー

ポイント40pt

経験上の話ですが。

このエラーEclipce使ってるとよくでますね。

tools.jarによる問題です。

EclipceのTomcatPluginでTomcatを起動する場合、デフォルトではtools.jarのCLASSPATH指定がないので、tools.jarは$CATALINA_HOME/commom/libのものが使用されます。

そもそも$CATALINA_HOME/commom/libにtools.jarが無い場合もあります。

Tomcatで使用するJVM設定のCLASSPATHに(JDKのディレクトリの)/lib/tools.jarを追加してください。

http://eclipsewiki.net/eclipse/index.php?Tomcat%A5%D7%A5%E9%A5%B...

----

また違う観点として、

startup.shを使用している場合、

環境変数JAVA_HOMEを確認してください。JDKへ向いているでしょうか。

startup.shは環境変数CLASSPATHを読みません。catalina.shによって、CLASSPATHに$JAVA_HOME/lib/tools.jarが追加されます。

jsvcで自動起動している場合、

init.dあたりに仕込んだシェルを確認してください。CLASSPATHに???/lib/tools.jarを追加している個所があるはずです。ちゃんと存在するパスになっているでしょうか。

----

また違う観点として、

server.xmlをいじったでしょうか?

contextタグを追加している場合、workDir属性がjspの作業ディレクトリになります。

記述を確認してください。

また、

webapps下のex.xmlを自前で作成したでしょうか?

contextタグを追加している場合、workDir属性がjspの作業ディレクトリになります。

記述を確認してください。

id:toenobu

回答をありがとうございます。解決致しました。

/etc/sysconfig/tomcat5の内容を下記のとおりに変更すると、無事に動作しました。

【変更前】JAVA_HOME="/usr/lib/jvm/java"

【変更後】JAVA_HOME="/usr/java/jdk1.5.0_12"

thinkITの記事のJVM設定を参考にしました。

http://www.thinkit.co.jp/free/article/0708/2/5/

 

JVMやTOMCATのことをよく理解しておらず、なぜ動作したのかをわかっていません。

少しずつ勉強して、理解を深めていく予定です。

わからなかったら、再度、質問致しますので、よろしければ答えてください。

ありがとうございました。

2007/12/16 15:47:37
  • id:quintia
    あるファイルだけがコンパイルができないのか、どんなjspファイルもコンパイルできないのかで調べることは全然違うと思うんですけど、どうなんでしょう?
  • id:toenobu
    後者で、どんなjspファイルもコンパイルできない状態でした。
    tomcat5設定ファイルを変更すると、動作しました。
    ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません