- PR -

JSPの画面が正しく表示されないのですが・・

1
投稿者投稿内容
花瓶夫
ベテラン
会議室デビュー日: 2003/10/01
投稿数: 50
投稿日時: 2003-12-16 13:49
毎回お世話様です。コンパイル済のJSPファイル(入力画面)に新たに追加機能のソースコードを入力しブラウザを開いたのですが、追加機能した部分が反映されていなく困っています。ソースコードの更新処理は正しく行っているのですが、ブラウザ上では追加機能前で画面表示されてしまいます。今までこのようなことは無かったので、いろいろとTomcatの再起動等試したのですが原因がつかめません。くだらない質問かと思いますが、どなたかご教授願いますか。宜しくお願いします。
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-16 14:10
差し支え無ければ Tomcat の $CATALINA_BASE/work 以下を
全て消してしまってはいかがでしょう。

JSP からプリコンパイルされた *.java や
これをコンパイルした *.class が全部消えてくれます。
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-16 14:18
私も過去に似たような現象に出くわした事がありますので
参考までにその時の状態を。

当時の Tomcat のバージョンは失念してしまったのですが
以下のようなフローでこの状況が再現する事を発見しました。

・開発環境にて test.jsp をコーディング
・test.jsp を Tomcat にデプロイ
・開発環境にて test.jsp を変更
・Tomcat にデプロイされている test.jsp にアクセス
・新しい test.jsp を Tomcat にデプロイ

こうする事で古い test.jsp の内容が表示されます。

実際のアプリケーションのデプロイは war ファイルで行い
これを解凍しないよう設定しておりました。
違う手順では再現しないかもしれません。

この現象の原因は Tomcat が
プリコンパイルされたファイルのタイムスタンプと、
最新の JSP のタイムスタンプを見比べてしまう事であると判断しました。

もしもこうした現象が起こっているなら上の私の
示した方法で解決すると思われます。

解決しなければ原因が違うという事ですね。
花瓶夫
ベテラン
会議室デビュー日: 2003/10/01
投稿数: 50
投稿日時: 2003-12-16 16:02
回答誠に有難うございます。CATALINAホーム以下のディレクトリをすべて削除して改めて、ディレクトリを作り直しJSPファイルとクラスファイルを配置し直すと言う解釈でしょうか?
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-16 16:11
いえ、$CATALINA_BASE/work 以下です。

.jsp はアクセスされた時点で Tomcat によって .java ファイルに
続けて .class ファイルへとコンパイルされます。

これらのファイルが $CATALINA_BASE/work の下に生成されるのです。
通常は $CATALINA_BASE 以下には

conf/ logs/ temp/ webapps/ work/

このようなディレクトリがあるかと思いますが、このうちの
work の下だけが対象です。

// work 自体は消しちゃ駄目ですよ。rm -fr work/* なイメージです。


[編集]
$CATALINA_HOME と $CATALINA_BASE を間違っていたので修正。
紛らわしいなあ。

[編集2]
まだ間違いが残っていた・・・。修正。

[ メッセージ編集済み 編集者: でくのぼう 編集日時 2003-12-16 16:15 ]

[ メッセージ編集済み 編集者: でくのぼう 編集日時 2003-12-16 16:58 ]
花瓶夫
ベテラン
会議室デビュー日: 2003/10/01
投稿数: 50
投稿日時: 2003-12-16 16:44
でくのぼうさん、大変有難う御座いました。work以下のファイルを削除したところ更新されました。感謝感激です!。本日、この件で半日時間を費やしてしまいました。また何かありましたら、宜しくお願いします。
1

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