[Seasar-user:17784] [S2Config] SmartDeploy環境下での挙動について
黒瀬健二
[E-MAIL ADDRESS DELETED]
2009年 6月 18日 (木) 14:23:33 JST
お世話になっております。黒瀬と申します。
先般リリースされたS2Configを早速利用させて頂いております。
HotDeploy環境下でもloadToBenasが呼ばれるように、ConfigFilterを使用させて
頂いているのですが、どうもうまく動作しません。
mavenリポジトリからソースを取得させて頂き、
org.seasar.config.extension.servlet.filter.command.FilterCommandFactory
のcreateメソッドにブレイクポイントを張ってデバッグしてみたのですが、なぜか
下記の「ココ」の場所の戻り値のインスタンスが、HotDeployFilterCommand
ではなく、DefaultFilterCommandになってしまうのです。。。
=======================================================
public static FilterCommand create(ServletRequest request,
ServletResponse response) {
if (!(request instanceof HttpServletRequest)
|| !(response instanceof HttpServletResponse)) {
return DefaultFilterCommand.getInstance();
}
final HttpServletRequest hrequest = (HttpServletRequest) request;
String uri = hrequest.getRequestURI();
if (!isTargetURI(uri)) {
return DefaultFilterCommand.getInstance();
}
if (HotdeployUtil.isHotdeploy()) {
ココ⇒ return HotDeployFilterCommand.getInstance();
}
return CoolDeployFilterCommand.getInstance();
}
=======================================================
結果として処理が何も行われず、loadToBeansも呼ばれないことになって
期待通りの挙動をしていない状況です。
ちなみに、CoolDeploy環境下では上記のコードも正常に動作して問題
ないのですが。。。
何か、指摘等ありましたらご教授頂ければ幸いです。
当方の環境は以下の通りです。
JDK v1.6.0_04
アプリケーションサーバ Tomcat v5.5.26
Seasar 2.4.38
S2Config 1.0.0
なお、configFilterの設定は以下の通りです。
(targetURIsの指定はとりあえず全てにマッチするようにしています。また、
filter-mappingの設定は、hotdeployfilterの直後に記述しています。)
<filter>
<filter-name>configfilter</filter-name>
<filter-class>
org.seasar.config.extension.servlet.filter.ConfigFilter
</filter-class>
<init-param>
<param-name>targetURIs</param-name>
<param-value>.*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>configfilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
以上、よろしくお願い致します。
Seasar-user メーリングリストの案内