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

亀田一郎 [E-MAIL ADDRESS DELETED]
2007年 6月 7日 (木) 07:48:50 JST


小林さま、お世話になっています。

・ご指導の通り、diconファイルの定義を変更して実行しました。
・この結果、loginUserDtoがインターセプターにDIされ、認識される様になりました。
・ Login2Page.javaのログオフメソッドの @RemoveSession(name="loginUserDto")
 が機能していないという問題は残っていますが、これについては、問題を整理してから
 あらためて投稿させて頂きます。

diconの定義、結果のスタックトレースは次の通りです。
【app.dicon】
  <component name="loginInterceptor2"
             class="test.interceptor.LoginInterceptor2"
instance="prototype"/>
【customizer.dicon】

  <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="pageCustomizer"
             class="
org.seasar.framework.container.customizer.CustomizerChain">
    <initMethod name="addCustomizer">
      <arg>pageSupportAspectCustomizer</arg>
    </initMethod>
    <initMethod name="addCustomizer">
      <arg>testCustomizer2</arg>
    </initMethod>
  </component>
【スタックトレース】
*** ログインせず、loginUserDtoがDIされていない状態でdoAuth()を呼び出した時***

DEBUG 2007-06-07 07:28:53,187 [http-8080-Processor25] クラス(
test.web.logincheck
2.Logincheck2Page[logincheck2_logincheck2Page])のコンポーネント定義を登録します
DEBUG 2007-06-07 07:28:53,234 [http-8080-Processor25] BEGIN
test.web.logincheck2
.Logincheck2Page#doAuth()
LoginInterceptor2...起動!!!

***** ログイン後にdoAuth()にアクセスした時 *****
DEBUG 2007-06-07 07:29:51,781 [http-8080-Processor24] BEGIN
test.web.logincheck2
.Logincheck2Page#doAuth()
LoginInterceptor2...起動!!!
@@@@@@@@@ 前
##### Start doAuth() #####
@@@@@@@@@ 後
DEBUG 2007-06-07 07:29:51,781 [http-8080-Processor24] END
test.web.logincheck2.L
ogincheck2Page#doAuth() : success

07/06/06 に Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> さんは書きました:
>
> 小林 (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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20070607/8743b4c2/attachment.html 


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