- - PR -
JSPファイルの事前コンパイルについて
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-09-27 15:19
[環境について]
OS Solaris 2.6 JDK J2SE 1.4.0_01 Servletコンテナ Tomcat 4.0.4 皆さんこんにちは。JSPファイルの事前コンパイルについてわからない ことがあるのですが、お知恵をお借りしたいのですが。 Tomcat4.0.4でWEBページを作っていますが、JSPのコンパイルを事前に 行いたいので、$CATALINA_HOME/bin/jspc.sh を使用して、JSPファイルを javaソースにコンパイルし、$JAVA_HOME/bin/javac を使用してjavaソース をコンパイルしてclassファイル(サーブレット)を作成しています。 これを$CATALINA_HOME/work以下に置くことで正常に動作はするのですが、 Tomcatが作成するものと比べるとclassファイルのバイナリが一致しません。 (javacの"-g", "-target"オプション等も試しましたが駄目でした) JDK1.2もインストールしているので、試しにJDK1.2のjavacでjavaソースを コンパイルしたところ、何故かバイナリが一致しました。 まさかTomcatもJDK1.2のjavacを使用しているのでは?と思い、JDK1.4.0_01の $JAVA_HOME/lib/tools.jar をリネームしたところ、TomcatはJSPのコンパイル が出来なくなったので、TomcatがJDK1.4.0_01のjavacを使用していることは 間違いなさそうです。 どのようにコンパイルすれば、JDK1.2を使用せずに、Tomcatが作成するものと 同一のclassファイルを作成することができるでしょうか? |
|
投稿日時: 2002-09-28 12:43
jspc.sh を実行している環境で見える javac が jdk1.2 なんじゃないですか?
JAVA_HOME および PATH を確認しましょう。 # ちなみに jsp のプリコンパイルは http://<JSPURL>?jsp_precompile へのアクセスでも行えます:) |
|
投稿日時: 2002-09-30 10:58
To:しょむさん
回答ありがとうございます。まず、Tomcat自身は、jspc.shは使用しません。 またTomcatの起動時に、JAVA_HOMEは1.4.0_01に設定しており、javacへの パスはTomcatの起動スクリプト内でJAVA_HOMEを元に生成しているようです。 Tomcatのjspc.shはJSPファイルをJAVAソースに変換するところまでしか やってくれません。そのため、そのJAVAソースを別途javacでコンパイル しなければなりません。尚、javacは絶対パスで呼び出しています。 また、JSPファイルはWEB-INF以下に置き、サーブレットから呼び出す仕様 にしているため、http://<JSPURL>?jsp_precompileにてアクセスできません。 また、コンパイルはTomcatが起動していない状態で行いたいのです。 もう一度JAVA_HOME, PATH等を調べてみます。 |
1
