JSPの基礎知識

JSPのリロードが行われないときの対策

テンアートニ 中越智哉
2001/6/27

 多くのJSPコンテナは、JSPファイルの更新を検知し、次回実行時にJSPファイルを再コンパイルして実行するリロード機能を備えています。

 リロード機能は、開発時にいちいちコンテナを再起動する手間が省けるため、非常に便利で欠かすことのできない機能ですが、まれにJSPのリロードが行われなくなったり、コンテナを再起動しても変更が反映されなかったりする場合があります。

 そもそも、JSPの動作原理は、JSPコンテナがJSPファイルをサーブレットのソースに変換し、サーブレットのソースをコンパイルしたものが実行されるというものです(参照:JSPの動作原理を教えてください)。

 リロードの際には、変換されたサーブレットと元のJSPファイルを比較して、更新されていれば、「再度変換」→「コンパイル」を行い変更を反映させています。

 もしリロード機能がうまく動作しなかった場合には、変換後のサーブレットとの比較がなんらかの原因でうまくできていないことが考えられます。その場合、変換後のサーブレットのファイルを削除してからコンテナを再起動することで、そのJSPを初めて実行すると見なされ、必ずサーブレットへの変換が行われます。

 例えば、Tomcatの場合(C:\tomcatにインストールしたと仮定します)、C:\tomcat\work下にWebアプリケーションごとのディレクトリができており、さらに各ディレクトリ内にJSPを変換してできたサーブレットのソースファイルとクラスファイルが格納されています(ほかのミドルウェアでは、格納場所は異なります)。


「Java Solution FAQ」




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間