• ベストアンサー

JSPでコンパイルキャッシュのリセット

tomcat3.1とJServで、JSPでHPを作っている者です。 JSPファイルを更新すると、次にブラウザに表示するときにコンパイルされますが、たとえばあるサーバに多くのJSPファイルを運んでいって、すべてかならずコンパイルしてほしい時などに tomcat/work/*.class をすべて消去する、という方法で正しいかどうかがわかりません。 どなたか実際にこの方法を採っている方などおりましたらアドバイスをいただければと思います。

  • sonoj
  • お礼率91% (11/12)
  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • nagata
  • ベストアンサー率33% (10/30)
回答No.1

tomcat, というか大抵の servlet engine は ファイルの日付をチェックしているはずですので、 特にそういったことを意識しなくても安全にコンパイルされます。 (それがパフォーマンス上の問題になることもあるわけで、 WebSphere などは明示的に再コンパイルを防止できます) もちろん *.class を消す方法でも問題ないでしょう。 (サーバの稼働中にそれをやるのは微妙に危険かもしれませんが。)

sonoj
質問者

お礼

御回答、ありがとうございます。 例えば、別のサーバにファイルをコピーしたりしていると、タイマーが微妙に違うそれぞれのコンピュータで編集したりコンパイルしたりするので、たまに未来ファイルがきたりすることもあるかと思います。その際、あくまでもファイルの日付だけを根拠にコンパイルされるのであれば、やはり不安な気もします。 とはいえ、確かに稼動中に*.classを消すのももっと怖いので、それはやめとこうと思います。 アドバイスありがとうございました。

関連するQ&A

  • JSPファイルがコンパイルできない!

    雑誌に付いていたtomcat3.2.3用のServlet/JSPを tomcat4.1.10で動かそうとしたら、JSPファイルが コンパイルできないというエラーが出ました。 エラーの内容は、 ------------------------ org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: /*****.jsp の中の行: 1でエラーが発生しました 生成されたサーブレットのエラーです: [javac] Compiling 1 source file C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\*****\*****_jsp.java:43: シンボルを解決できません。 シンボル: クラス ○○ 場所 : org.apache.jsp.*****_jsp の クラス ***** ***** = (*****)request.getAttribute("*****"); ^ -------------------------- といった感じです。 tomcat3.2.3ではちゃんと動いたのですが、 4.1.10では他に何かしなければいけないのでしょうか。 よろしくお願いします。

  • Tomcat内のJSPファイルを削除したい

    事情がありにTomcat内のフォルダを 見せなければならなくなりました。 他人にTomcat内のファルダにあるサーブレット(+Beans等のクラスファイル)と JSPのソースを見られない様にしたいです。 またその上で実行も可能にしたいのですがどうすればいいでしょうか? サーブレット等は Tomcat 7.0/webapps/MyWebSite/WEB-INF/classes以下の クラスファイル(.class)だけを残してJavaファイル(.java)を削除 するか、Eclipseでソースをエクスポートさせない様にすると Javaのソースは見れなくなると思いますが、 JSPの場合だと Tomcat 7.0/webapps/MyWebSite/以下の JSPファイル(.jsp)を削除して、 Tomcat 7.0/work/ 以下にあるJSPをサーブレットに変換後 コンパイルされたファイル(.class)を残すだけではダメな様です。 他に方法はあるでしょうか? サーブレットのソースを見られないだけでも良しと考えるべきでしょうか?

    • ベストアンサー
    • Java
  • JSPファイルを削除したいです。

    事情がありにTomcat内のフォルダを 見せなければならなくなりました。 他人にTomcat内のファルダにあるサーブレット(+Beans等のクラスファイル)と JSPのソースを見られない様にしたいです。 またその上で実行も可能にしたいのですがどうすればいいでしょうか? サーブレット等は Tomcat 7.0/webapps/MyWebSite/WEB-INF/classes以下の クラスファイル(.class)だけを残してJavaファイル(.java)を削除 するか、Eclipseでソースをエクスポートさせない様にすると Javaのソースは見れなくなると思いますが、 JSPの場合だと Tomcat 7.0/webapps/MyWebSite/以下の JSPファイル(.jsp)を削除して、 Tomcat 7.0/work/ 以下にあるJSPをサーブレットに変換後 コンパイルされたファイル(.class)を残すだけではダメな様です。 他に方法はあるでしょうか? サーブレットのソースを見られないだけでも良しと考えるべきでしょうか? http://ksrd.yahoo.co.jp/PAGE=DT_ACTIVE/OUTLINK=1/QID=12100680882/AID=236975321/SIG=12dep0io1/EXP=1359004059/*-http%3A//tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html#Web_Application_Compilation 上記URLに何かそれらしき事が書いてあるのですがよく分かりません。 どうすればいいでしょうか? アクセスを制限する以外の方法でお願いします。

    • ベストアンサー
    • Java
  • Tomcat4.1のworkフォルダとJavaについて…。

    実は、Tomcat4.0とRDBを使って簡単な商用サイトをlocalhost上で動かせるように 作りました。 それから、Tomcatのversionを4.1.18に変え、CLASSPATHも間違いなく変更しました。 version4.1になってからworkフォルダというものができたのですが、その部分について知識のある方がいたら、是非とも教えて頂きたい事があります。。 まず、workフォルダはブラウザ上からjspファイルを開こうとすると、 そのフォルダ内でjspファイルをServlet化したファイル――例えばopen_jsp.java――を自動的に生成します。 どうにか一応そのServletのコンパイルは通ったのですが、 『Cannot create JDBC driver of class ‘com.mysql.jdbc.Driver' for connect URL 'null'』 というExceptionエラーが表示されます。 長々となりましたが、この意味が分かるようで分からなくて困っています。 classファイルもでき、Tomcatのserver.xmlにはしっかりとurlを入れているのに何故画面が表示されないのでしょうか。 長々となりましたが、宜しくお願いします。

  • JSPファイルの更新が反映されない

    JSPファイルを別のパソコンで作ったファイル で上書きして書き換えるようにしたところ、 更新が反映されなくなりました。 どうしても、昔のファイルが表示されてしまいます。 いろいろ調べて、 C:\Program Files\Apache Software Foundation\Tomcat 5.5\work\Catalina\localhost\_\org\apache\jsp にあるJSPファイルを削除しても、同じです。 どうして反映されないのか、反映されるには、 どうしたらいいのか、教えてください。 (ブラウザの一時ファイルを削除しても、だめ でした)。

    • ベストアンサー
    • Java
  • JSPのJava部分が読まれない問題について・・・

    いつもお世話になっております。 今回JSPについて質問させていただきます。 JSPのJava部分<% %>でくくられる部分が読み込まれなくて困っています。 Tomcatについて詳しくないので、それが問題だとは思いますが。。。 前提をお話しますと、Windowsサーバで動作していたjspファイル群をLinuxサーバへ移行しました。 なお、Linuxサーバで以下の確認は取れています。 Apacheの動作確認(htmlファイルなどを置いてWebページ確認) Javaの動作確認(javaファイルを作りコンパイル、classファイルの実行確認) Tomcatの動作確認(jsp-examples等のWebページ確認) たぶん問題かなと思うのは、ファイルの位置、および設定ファイルだと思います。 が、何がどう間違っているのやら。 Windows時のディレクトリ構造は以下の通りです。 webapps + website ++ css ++ img ++META-INF ++ view +++ sample.jsp ++ WEB-INF ++++ web.xml +++ lib +++++ mysql-connector-java-x.x.x-bin.jar +++ classes ++++ sample_servlet.class ++++ beans +++++ database_access.class (スペースが認識されなかったので、+がディレクトリの深さだと思ってください。) このような階層構造です。 webappsの階層はconfなどがある階層です。 何が問題かご教授お願いします。 ちなみに、 移行前サーバWindows XP 移行後サーバ Cent OS Tomcatバージョン:同様に5.0 です。 よろしくお願いします。

  • JSPのJava部分が読まれない問題について・・・

    いつもお世話になっております。 今回JSPについて質問させていただきます。 JSPのJava部分<% %>でくくられる部分が読み込まれなくて困っています。 Tomcatについて詳しくないので、それが問題だとは思いますが。。。 前提をお話しますと、Windowsサーバで動作していたjspファイル群をLinuxサーバへ移行しました。 なお、Linuxサーバで以下の確認は取れています。 Apacheの動作確認(htmlファイルなどを置いてWebページ確認) Javaの動作確認(javaファイルを作りコンパイル、classファイルの実行確認) Tomcatの動作確認(jsp-examples等のWebページ確認) たぶん問題かなと思うのは、ファイルの位置、および設定ファイルだと思います。 が、何がどう間違っているのやら。 Windows時のディレクトリ構造は以下の通りです。 webapps + website ++ css ++ img ++META-INF ++ view +++ sample.jsp ++ WEB-INF ++++ web.xml +++ lib +++++ mysql-connector-java-x.x.x-bin.jar +++ classes ++++ sample_servlet.class ++++ beans +++++ database_access.class (スペースが認識されなかったので、+がディレクトリの深さだと思ってください。) このような階層構造です。 webappsの階層はconfなどがある階層です。 何が問題かご教授お願いします。 ちなみに、 移行前サーバWindows XP 移行後サーバ Cent OS Tomcatバージョン:同様に5.0 です。 よろしくお願いします。

  • EclipseでJSPのコンパイルエラー

    過去に開発したWebアプリをEclipseを使用して再開発し直してみようと挑戦中ですが、以下のエラーが解決できず困っています。 ***** org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: null の中の行: -1でエラーが発生しました 生成されたサーブレットのエラーです: [javac] Compiling 1 source file E:\AddProgram\Eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Standalone\localhost\XXX\login_jsp.java:10: java.lang.Object にアクセスできません。 クラスファイル E:\AddProgram\Eclipse\eclipse\jre\lib\rt.jar(java/lang/Object.class) は不正です。 クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 public class login_jsp extends HttpJspBase { ^ エラー 1 個 ***** Javaビルドパス-クラスパス変数は j2sdk1.4.2\jre\lib\rt.jarになっているし、 Javaコンパイラーの準拠レベルは1.4になっているし、 JAVA_HOMEやPATHもj2sdk1.4.2、j2sdk1.4.2\binになっているんですが、何故別のjarを参照してしまっているのでしょうか? Eclipseの再起動、JRE1.4.2の再インストールなども試みましたが、解決せず悩んでいます。解決方法をご存知の方、ご教授ください。 ■環境(最終的に落ち着いた使用バージョンは以下の通り。) ・EclipsePleiadesAllinOneJava3_4_2 ・java 1.4.2 ・Tomcat 4.1.31 ・Apache 2.0.53 ・MySQL 4.0.25

    • ベストアンサー
    • Java
  • javaで開発 - Tomcatの設定

    javaで開発 - Tomcatの設定 Javaの勉強をしていて今サーブレットを勉強しているのですが、 ファイルをコンパイルしてブラウザで表示させた後、処理を変更してコンパイルしたclassファイルを前のclassファイルに上書きしてブラウザの更新ボタンを押しても反映されません。 ・ブラウザを起動し直してページ開いても更新されません ・ブラウザを開いたままTomcatのサービスを一度停止して、再びスタートしても更新されません。 ブラウザを閉じてTomcatのサービスも停止した状態でファイルを上書きしてTomcatのサービスを開始してブラウザ起動しページを開くと更新されます。 ファイルを更新する為にいちいちブラウザもTomcatも閉じなければいけないのが非常に面倒なんですが、コレは仕様ですか?それとも設定でどうにかなるものでしょうか?

    • ベストアンサー
    • Java
  • jspのクラスのコンパイルエラー

    jspのクラスのコンパイルエラーが解決出来ず皆様にお力を借りたいと思っています 以前はjdk1.4のtomcat5の動かしていたプログラムを jdk1.7のtomcat7で動かさないといけなくなりました。 実行環境 tomcat7 jdk1.7 エラー内容 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: An error occurred at line: [16] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The type AC10101_jsp must implement the inherited abstract method JspSourceDependent.getDependants() An error occurred at line: [22] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The type Map is not generic; it cannot be parameterized with arguments <String, Long> An error occurred at line: [25] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved to a variable An error occurred at line: [25] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The type HashMap is not generic; it cannot be parameterized with arguments <String, Long> An error occurred at line: [26] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [26] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [27] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [27] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [28] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [28] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [29] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [29] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [30] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [30] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [31] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] _jspx_dependants cannot be resolved An error occurred at line: [31] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The method valueOf(String) in the type Long is not applicable for the arguments (long) An error occurred at line: [45] in the generated java file: [E:\Tomcat 7.0\work\Catalina\localhost\test\org\apache\jsp\WEB_002dINF\pages\ac\AC10101_jsp.java] The type Map is not generic; it cannot be parameterized with a

専門家に質問してみよう