- PR -

jsvcを使うとJSPをコンパイルできない? (FileNotFoundException)

1
投稿者投稿内容
asari
会議室デビュー日: 2003/07/11
投稿数: 5
投稿日時: 2003-12-12 22:59
こんにちは。あたらししもの好きで、java1.4.2_03+Tomcat 5.0.16を使ってみています。
前の投稿を文字化けさせてしまいました。申し訳ありません。
Tomcatを80番ポートで動かすべく、jsvcを使ってwwwユーザでTomcatを動かしています。

この状態でJSPをコンパイルするような状態にすると、
次のようなメッセージが出てコンパイルに失敗してしまいます。

HTTP Status 500
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:558)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

root cause
java.io.FileNotFoundException: /home/www/jakarta-tomcat-5.0.16/work/Catalina/localhost/standard-examples/org/apache/jsp/conditionals/If_jsp.java
java.io.FileOutputStream.open(Native Method)
java.io.FileOutputStream.(FileOutputStream.java:179)
java.io.FileOutputStream.(FileOutputStream.java:70)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:223)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:456)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:552)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

$CATALINA_HOME/bin/startup.sh を使っている時にはこの問題はおこりません。
まだ実用段階にしていないので支障はありませんが、何か助言はありませんか?
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-12-15 00:57
asariさん、こんにちは。

If_jsp.javaは、例外で表示されているパスに存在しているでしょうか?

引用:
$CATALINA_HOME/bin/startup.sh を使っている時にはこの問題はおこりません。


との事ですから、If_jsp.javaはどっかにあるのでしょうが、この例外で示される
パスを正確に辿って見てください。どこか1箇所でも違っていれば、それがヒント
になります。
asari
会議室デビュー日: 2003/07/11
投稿数: 5
投稿日時: 2003-12-19 16:52
こんにちは。遅くなりました。
引用:
asariさん、こんにちは。

If_jsp.javaは、例外で表示されているパスに存在しているでしょうか?


いいえ、していないように見えます。
コード:
$ ls /home/www/jakarta-tomcat-5.0.16/work/Catalina/localhost/standard-examples/
tldCache.ser


startup.shを使って起動したときには、次のようにorg以下のファイルが生成されます。
コード:
$ ls /home/www/jakarta-tomcat-5.0.16/work/Catalina/localhost/standard-examples/
org  tldCache.ser


不思議に思ってパーミッションをチェックしてみると、次のようになっていました。
コード:
$ ls -ld standard-examples/
drwxr-xr-x    2 www      www          4096 12月 19 16:39 standard-examples/


…正しいみたいです。
どこかでパーミッションを間違えているような気がするのですが、今のところ見当はついていません…。
asari
会議室デビュー日: 2003/07/11
投稿数: 5
投稿日時: 2003-12-20 01:39
補足します。
コード:
$ sudo find / -name "*If_jsp*"


jsvc+Tomcat5で起動して、くだんの例外が発生したときには、If_jsp.javaはどこにも見つかりませんでした。

Tomcat4も使ってみました。同じサンプルは使うことはできませんでしたが、とりあえず同じ症状にはであっていません。Tomcat5.0.16特有の症状、という可能性も出てきたの、でしょうか…
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-12-20 22:22
この .javaファイルは .jspから自動生成されるのですか?
find掛けて見つからないのなら、生成の失敗でしょうか。
ログとかには何か記録されてないでしょうか?
asari
会議室デビュー日: 2003/07/11
投稿数: 5
投稿日時: 2003-12-23 20:24
うわぁ、返事が遅くなってごめんなさい。
引用:
この .javaファイルは .jspから自動生成されるのですか?


そうですね。そういうものだと認識しています。

生成のエラーだよなぁ、とは思うのですが、生成時のエラーが出ずにコンパイル時のエラーのみが出るのが不思議です。それっぽいのを探してみているのですが。

できれば、別の環境も準備して比べてみたいです。
凡ミスも見つかりやすいだろうし…
1

スキルアップ/キャリアアップ(JOB@IT)