[Seasar-user:4529] Re: インターセプターチェインの設定方法について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2006年 9月 5日 (火) 15:15:16 JST
小林 (koichik) です.
Date: Tue, 5 Sep 2006 12:13:39 +0900
From: [E-MAIL ADDRESS DELETED]
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:4522] インターセプターチェインの設定方法について
ちょっと現象から原因が予測できませんが,気になった点だけ.
> 【 2.の場合のdicon全体 】
>
> <component name="myActionInterceptor" instance="request"
> class="test.action.ActionInterceptor">
> <aspect pointcut="invoke">lifecycleInterceptor</aspect>
> </component>
> <component name="myServiceInterceptor" instance="request"
> class="test.service.ServiceInterceptor">
> <aspect pointcut="invoke">lifecycleInterceptor</aspect>
> </component>
> <component name="myDaoInsertInterceptor" instance="request"
> class="test.dao.DaoInsertInterceptor">
> <aspect pointcut="invoke">lifecycleInterceptor</aspect>
> </component>
これらの instance 属性は prototype にしてください.
request だと,コンテナの初期化時にインスタンスを生成できない
場合もあります.
なお,インターセプタチェインの instance 属性はデフォルト
(singleton) のままで構いません.
最後の【 2.の場合のdicon全体 】では,チェインの記述が
その上の記述と異なり,Dao,Action,Service になっていますが,
その場合はどのような結果になるのでしょうか?
Dao にインターセプタが適用されなくなるのでしょうか?
それとも,Dao のチェインに myDaoInsertInterceptor が適用されて
いないので,Action にインターセプタが適用されなくなるのでしょうか?
問題の切り分けをしたいので,お手数ですが lifecycleInterceptor を
適用しているインターセプタの定義を削除して,
> <!-- インターセプターチェインの設定 -->
> <component name="daoInterceptorChain"
> class="org.seasar.framework.aop.interceptors.InterceptorChain">
> <initMethod name="add"><arg>traceInterceptor</arg></initMethod>
> <initMethod name="add"><arg>dao.daoInterceptor</arg></initMethod>
> </component>
>
> <component name="myActionInterceptorChain"
> class="org.seasar.framework.aop.interceptors.InterceptorChain">
> <initMethod name="add"><arg>traceInterceptor</arg></initMethod>
> </component>
>
> <component name="myServiceInterceptorChain"
> class="org.seasar.framework.aop.interceptors.InterceptorChain">
> <initMethod name="add"><arg>j2ee.requiredTx</arg></initMethod>
> <initMethod name="add"><arg>traceInterceptor</arg></initMethod>
> </component>
という設定でどうなるか試して頂けますか?
これで問題がないようだと,やはり lifecycleInterceptor か,
それを適用しているインターセプタの問題ということになるかと
思います.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内