[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 メーリングリストの案内