- - PR -
JSPを変更し再コンパイルさせるには?
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-07-30 17:16
初めて投稿いたします。
私はTOMCAT4とpostgresSQLをサーバにセットて Webサービスアプリケーションを開発しているものです。 まだ、はじめたばかりですので、いろいろ分からないと ことが多いのですが、現在「変更したJSPファイルの 表示結果が、変更前のJSPファイルの表示結果と置き換わらない」 という問題で困っています。 TOMCATの場合、JSPファイルに変更を加えると自動的に再コンパイル して新たな表示を行うはずですが、JSPファイルが多くなってくると だんだん、再コンパイルしにくくなる現象がおきております。 特に表示系を変えずにコードのみの変更の場合多くおきております。 そのため、(1)ブラウザ表示を変更前のJSPファイルとは、変わるように 記述して、変更JSPファイルをサーバにアップする。 (2)わざと変更後のJSPファイルにコードエラーとなる 記述をしておき、そのエラーを認識したことを確認して からエラー部分のコードを削除して再アップする。 (3)TOMCAT自体のリブートを行う。 などの処置を取っています。 しかし、それでもJSPファイルの数が多くなると再コンパイルして くれる率がひくくなってしまいます。たまに、JSPファイルを削除 してもそのまま動いてしまいますし、一度ファイル削除を認識すると ファイルを再アップしてもなかなか認識してくれなかったりします。 皆様はこのようなご経験はありませんか? その場合、どのように対処されていますでしょうか。 1台のパソコンでTOMCATを起動してその上でコーディングすると このような問題はおきないのでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2003-07-30 18:43
これは・・・ご苦労様です。。。 方法は数種類ありますのでご案内します。 1. server.xml で 該当Contextに reloadable = "true" を追加する。 オートリロードと呼ばれるもので、勝手に再読み込みしてくれます。 2. workディレクトリの xx$jsp.java, xx$jsp.class を手動で削除。 めんどくさいと思います。 3. http://hostname:portNo/manager/reload?path=/XXX 運用段階になるとこの方法を使います。 詳細はJakartaHPでご確認ください。 以上。ごさんこうまで | ||||
|
投稿日時: 2003-07-30 22:48
raystar様、ご丁寧なご解答誠にありがとうございます。
現状では、1.でご指摘のありました、server.xmlでのContex内の reloadable="true"は設定は行っておりました。 2.のwork内の該当ファイルを削除するを行ったところ、確実に再 コンパイルができるようになりました。ありがとうございます。 3.のmanagerを利用したreloadでは、再コンパイルを行わない 場合もありました。 2の方法で確実に再コンパイルできるようになりました。 参考になりました。本当にありがとうございます。 | ||||
|
投稿日時: 2003-07-31 09:29
こんにちわ。 わたしは確実に2.を行っていますね。 なぜかコードを修正してもキャッシュを使用している場合が 多々ありますので。 2.を行えば確実です。 運用段階においては、reloadable=falseとすることが多いので こちらも2.です。 コード修正=サーバ再起動ですから。 では。 | ||||
|
投稿日時: 2003-07-31 14:12
こんにちわ。
私も2番です。 JSPが変更されたかどうかは、JSPファイルのタイムスタンプ が関係あったはずですよ。 例えば、TomcatのWorkにあるXXX_jsp.classとJSPファイルの タイムスタンプを比較して、JSPファイルのタイムスタンプが 新しいと判断した場合に再コンパイルされたはずです。 今試しに、システム日時を過去日に変更し、JSPにコンパイル エラーを潜ませてリロードさせても正常に動いてましたから。 参考にでもなれば幸いです。 | ||||
|
投稿日時: 2003-08-02 01:03
昔はJSPが自動的に再コンパイルしてくれなくて、
めんどくさかった経験があります。 最近、Tomcat4.1.24を入れたのですが、 Context reloadble = "false"で、 JSPを更新してUPロードすると、勝手に再コンパイルしてくれます。 workを消すことがなくなっちゃいました。 これって、APの仕様だったんですかね。 | ||||
1
