[Seasar-user:10171] Re: [S2Struts]Interceptor にセッションのオブジェクトがDIされない

Yasuo Higa [E-MAIL ADDRESS DELETED]
2007年 8月 29日 (水) 16:38:14 JST


ひがです。

> いつもお世話になります。吉田@オプティクスです。
> 
> S2Struts 1.3.0 RC1
> S2Framework 2.4.12
> 
> 上記の環境で、独自に作成したInterceptorにセッションへ格納したオブジェクト
> がDIされず、悩んでいます。
> 
> 以下のようなコードでテストしてみましたが、セッションに格納しているLoginInfo
> がDIされていません。
> 
特に問題なさげですね。
Actionはインターフェースがあるかどうか確認してください。
インターフェースがない場合は、pointcutの指定が必要です。

後、無難なのは、
SingletonS2ContainerFactory.getContainer().getComponent()で
取得することです。

Seasar2に依存してしまいますが、Interceptorというごく少数の
ケースでの依存なので気にしなくてもいいのかなと思います。

> public class TestInterceptor extends AbstractInterceptor {
> 
> 	private static final long serialVersionUID = 1L;
> 
> 	private Log log = LogFactory.getLog(this.getClass());
> 	
> 	private LoginInfo loginInfo;
> 
> 	public Object invoke(MethodInvocation invocation) throws Throwable {
> 	
> 		String className = invocation.getClass().getName();
> 		String method = invocation.getMethod().getName();
> 		
> 		log.info(className + "#" + method + "を実行中");
> 		if(loginInfo == null) {
> 			log.info("loginInfoがnull");
> 		} else {
> 			log.info("loginInfoが入っている");
> 		}
> 		
> 		return invocation.proceed();
> 	}
> 	
> 	public void setLoginInfo(LoginInfo loginInfo) {
> 		this.loginInfo = loginInfo;
> 	}
> }
> 
> custmizer.diconには
> 
> <component name="testAspectCustomizer"
> class="org.seasar.framework.container.customizer.AspectCustomizer">
> 	<property name="useLookupAdapter">true</property>
> 	<initMethod name="addInterceptorName">
> 		<arg>"testInterceptor"</arg>
> 	</initMethod>	
> </component>
> <component name="actionCustomizer"
> class="org.seasar.framework.container.customizer.CustomizerChain">
> 	<initMethod name="addCustomizer">
> 		<arg>commandAspectCustomizer</arg>
> 	</initMethod>
> 	<initMethod name="addCustomizer">
> 		<arg>testAspectCustomizer</arg>
> 	</initMethod>		
> </component>
> 
> と記述しています。
> [Seasar-user:7847]あたりも参考にしてみたのですが...
> どうすればセッションのオブジェクトがDIされますでしょうか?
> 
> |--------||--------||--------||--------||--------||--------|
> 有限会社オプティクス
> 700-0971
> 岡山県岡山市野田3-1-18 安田ビル5F
> TEL:086-246-9321
> FAX:086-246-5117
> http://www.optics-net.com
> mail:[E-MAIL ADDRESS DELETED]
> gmail:[E-MAIL ADDRESS DELETED]
> |--------||--------||--------||--------||--------||--------|
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 


--
Yasuo Higa
[E-MAIL ADDRESS DELETED]


Seasar-user メーリングリストの案内