- PR -

struts-config変更後に再起動しない方法

1
投稿者投稿内容
パンダ
ベテラン
会議室デビュー日: 2004/03/24
投稿数: 59
投稿日時: 2006-01-13 20:06
struts+TOMCATで開発をはじめた初心者です。
struts-config.xmlを変更後にTOMCATを再起動しない方法はないでしょうか?

再起動しないと変更内容が反映されないようです。
変更の度に再起動していると開発効率が落ちそうで困っています。

よろしくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-01-13 23:35
現状のStrutsでは、無理な話です。

ですので、一番実現的な方法として、
struts-config.xmlの書き換え後に、
自動でアプリケーションのリロードされるようにすればOKです。

そもそも、Tomcatのリロードは、
アプリケーションのクラスローダで認識しているリソースの
最終更新日をチェックしてリロードしています。

struts-config.xmlはサーブレットからの相対パスを使用して、
FileInputStreamでロードされていますので、
アプリケーションのクラスローダから認識されませんが、
無理やり読み込ませると、変更後に自動でリロードされるようになります。

コード:
// WEB-INF/struts-config.xmlをロードする場合
ClassLoader loader = Thread.currentThread().getContextClassLoader();
loader.getResource("../struts-config.xml");



プラグインを実装して、初期化の時に実行するのがお勧めです。
同じ要領で、バリデータの設定にも対応可能です。
どんたくお
ベテラン
会議室デビュー日: 2005/08/29
投稿数: 88
投稿日時: 2006-01-14 21:16
横槍失礼します。

ぱんださん
僕も以前に、同じことを考え、そのときは、StrutsのActionServletを継承したクラスを作り、かつのりさんよりご教授いただいた
コード:
ClassLoader loader = Thread.currentThread().getContextClassLoader();
loader.getResource("../struts-config.xml");


で、自動読み込みするようにしました。
そのクラスをweb.xmlに指定していました。

かつのりさん
引用:
プラグインを実装して、初期化の時に実行するのがお勧めです。


なるほど。プラグインから自動読み込みもできるのですね。
org.apache.struts.action.PlugIn
を実装したものでしょうか。


参考になれば幸いです。
パンダ
ベテラン
会議室デビュー日: 2004/03/24
投稿数: 59
投稿日時: 2006-01-15 20:53
ありがとうございます。
頑張ってやってみます。
1

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