K-fix Learning & Playing

Java


AutoReload設定

サーブレットクラスのファイル内のコードを編集した後に、実行しても反映されない場合があります。これは、アプリケーションサーバは、リクエストに応答した後もサーブレットクラスのインスタンスは破棄せずにメモリに残っているのが原因です。なので、一旦アプリケーションサーバを停止して、再起動すれば編集した内容が反映されます。
手作業で再起動するのは結構面倒なので、Eclipseの実行機能を使ってサーバが自動的にリロード(再読み込み)されれば、実行だけで変更が反映されます。

リロードを実行するファイルは「src/main/webapp/META-INF」内に保存します。
手順はXMLファイルを作り、そのファイル内に新しく要素を作り、その中に属性名「reloadable」を作り、値を「true」にします。サーバーを再起動すると、リロード機能が反映されます。

サーブレットクラスを編集して、上書き保存をすると数秒後にコンソールビューに「このコンテキストのオートリロードが完了しました。」と表示されます。サーバを再起動しなくても実行すると編集の内容が反映されて結果をブラウザ上に表示します。