人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【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)

●質問者: とおのぶ。
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Apache API EX HTTP JAR
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●40ポイント

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

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

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

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

あたりでしょうか。

◎質問者からの返答

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

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


2 ● mj99
●40ポイント ベストアンサー

経験上の話ですが。

このエラー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の作業ディレクトリになります。

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

◎質問者からの返答

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

/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のことをよく理解しておらず、なぜ動作したのかをわかっていません。

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ