サーブレットの基礎知識

サーブレットにおけるクラスパス設定の注意点

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

 サーブレットコンテナ上でサーブレットを動作させる際にも、やはり通常のJavaアプリケーションと同様にクラスパスを設定する必要があります。

 ただしサーブレットの場合は、通常のクラスパス以外にも、もう1種類サーブレットリロード用のパスを設定するのが一般的です。

 このパスは、サーブレットコンテナによってJavaVMとは独立に管理されるもので、通常、サーブレットコンテナは一定周期でこのパスを監視しており、もしそこに配置されているサーブレットのクラスファイルが更新された場合は、自動的に新しいクラスファイルをリロード(再ロード)して用いるようになっています。

 この機能は、開発時にはサーブレットコンテナ自体の再起動をする必要がないため便利ですが、運用時のサーブレットのリロードは、(1)destroyメソッドの実行→(2)クラスのアンロード→(3)クラスのロード→(4)initメソッドの実行というサイクルを行うことになるため、保持しているセッションなどが切断されてしまうことがあります。サーブレットの自動再ロード機能は、設定によって有効・無効を切り替えることが可能ですから、開発時には有効に、本番運用時には無効にしておくのがよいでしょう。

 また、サーブレット以外のクラスは、通常はリロードの対象になりません。サーブレット以外のクラスを更新した場合には、サーブレットコンテナの再起動が必要になりますので注意してください。


「Java Solution FAQ」



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

注目のテーマ

Java Agile 記事ランキング

本日 月間