[Seasar-user:8132] Re: S2ContainerとTeedaのバージョンを変更するとInterceptorにDIされません

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 6月 6日 (水) 23:00:48 JST


小林 (koichik) です.

Date:    Wed, 6 Jun 2007 21:32:28 +0900
From:    "亀田一郎" <[E-MAIL ADDRESS DELETED]>
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:8128] Re: S2ContainerとTeedaのバージョンを変更するとInterceptorにDIされません

>   <component name="loginInterceptor2"
>              class="test.interceptor.LoginInterceptor2"
> instance="prototype"/>

この定義は customizer.dicon ファイルから削除して,
app.dicon ファイルに記述してください.

>   <component name="pageCustomizer2"
>              class="
> org.seasar.framework.container.customizer.CustomizerChain">
>     <initMethod name="addCustomizer">
>       <arg>testCustomizer2</arg>
>     </initMethod>
> 
>   </component>

この定義のコンポーネント名 "pageCustomizer2" は
"pageCustomizer" ですね.                 ^


ここからはインターセプタを SMART deploy にする場合.

> # インターセプタも SMART deploy を使うようにすれば
> # app.dicon に自動登録されることになります.
> インターセプターにSMART deployを適用する
> 設定方法をご教示下さい。

ルートパッケージが test だとすると,
test.interceptor パッケージに 〜Interceptor
という名前でインターセプタを作成するだけです.
ですから,LoginInterceptor2 ではダメで,
Login2Interceptor なら大丈夫です.
その場合,コンポーネント名も login2Interceptor
となります.

インターセプタのクラス名を以上のように変更して
dicon から

>   <component name="loginInterceptor2"
>              class="test.interceptor.LoginInterceptor2"
> instance="prototype"/>

の設定を削除し,

>   <component name="testCustomizer2"
>              class="
> org.seasar.framework.container.customizer.AspectCustomizer">
>      <initMethod name="addInterceptorName">
>        <arg>"loginInterceptor2"</arg>
>      </initMethod>
>      <property name="useLookupAdapter">true</property>
>      <property name="pointcut">"doAuth"</property>
>   </component>

の設定を

  <component name="testCustomizer2"
             class="
org.seasar.framework.container.customizer.AspectCustomizer">
     <initMethod name="addInterceptorName">
       <arg>"login2Interceptor"</arg>
     </initMethod>
     <property name="useLookupAdapter">true</property>
     <property name="pointcut">"doAuth"</property>
  </component>

に変更 (loginInterceptor2 -> login2Interceptor) で
大丈夫じゃないかと思います.


--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




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