連載
» 2003年09月05日 10時00分 公開

JavaTips 〜アプリケーションサーバ/コンテナ活用編:クラスファイルの更新時にTomcatを再起動しない方法

[山田祥寛,@IT]

 通常、サーブレットやJavaBeansなどに代表される「.class」ファイルを新規に作成(または更新)した場合、コンテナの再起動が必要となります。

 しかし、コンテナの停止と起動の作業は、開発時における「.class」ファイルを頻繁に差し替える環境下では非常に面倒な作業といえるでしょう。

 そこで、Tomcatではサーバ設定ファイル「server.xml」を編集することで、特定のフォルダ配下の「.class」ファイルが更新された場合には再起動を行わなくても済む方法が用意されています。

 ただし、この処理を有効にした場合、コンテナは常に特定のフォルダ配下を監視するため、サーバに余計な負荷を強いることになります。実運用環境ではサイトのパフォーマンスに影響を与える可能性もありますので、あくまで開発環境でのみ使用するTIPSとして覚えておくとよいでしょう。

操作手順

 「conf」フォルダ下の「server.xml」をテキストエディタなどで開き、以下のように追加してください。赤字部分が追記するコードです。アプリケーションパス、アプリケーション名は、共に「javatips」とします。

<!-- Tomcat Root Context -->
<!--
<Context path="" docBase="ROOT" debug="0"/>
-->
<Context path="/javatips" docBase="javatips" debug="0"
reloadable="true" crossContext="true" />


 reloadable属性にtrueをセットすることで、「javatips」アプリケーション配下の「.class」ファイルが更新されても、いちいちコンテナを再起動する必要がなくなります。なお、「server.xml」を編集した後は、必ずTomcatを再起動するのを忘れないようにしてください。

 実際に、「javatips」アプリケーション配下の「.class」ファイルを更新してみます。「.class」ファイルの更新後、以下のようにコンソール上にファイル更新のメッセージが表示されれば成功です。

コンソール上にファイル更新のメッセージが表示されれば成功 コンソール上にファイル更新のメッセージが表示されれば成功

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。