[Seasar-user:6289] Re: 【S2Struts】s2struts:submitのaction指定と interceptor

Katsuhiko Nagashima [E-MAIL ADDRESS DELETED]
2007年 2月 22日 (木) 22:58:26 JST


永島です。

2重登録は全然関係なかったですね。。。
お手数をお掛けしました。

>         Actionのinterfaceに定義していないメソッドを、s2struts:submitのaction指定で
>         呼び出すと、Interceptorが呼ばれない。

についてですが、
pointcutを指定していない場合、
Interceptorはインターフェースとして定義しているメソッドのみ対象となります。
インターフェースにないメソッドは、pointcutを指定することにより
Interceptorが呼ばれると思います。

> Interfaceに無いメソッドはエラーになるようには設定できないでしょうか?

MethodBindingでインターフェースにないメソッドを指定したとしても
エラーとする機能/設定はありません。
同様の要望がありましたら、機能の実装を考慮したいと思います。

よろしくお願いします。


07/02/22 に 原田<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 原田です。
>
> ちょっと進みました。
>
>         Actionのinterfaceに定義していないメソッドを、s2struts:submitのaction指定で
>         呼び出すと、Interceptorが呼ばれない。
>
> です。
> Interfaceに無いメソッドはエラーになるようには設定できないでしょうか?
>
> よろしくお願いします。
>
>
> 原田 <[E-MAIL ADDRESS DELETED]> wrote:
>
> > 原田です。
> >
> > SMART deployのみでもうまくいきませんでした。
> >
> > SMART deploy環境でテストプロジェクトを作りましたので、添付します。
> > 申し訳ないのですが、調べてもらえませんか?
> >
> > /***/test.doを開き、
> >
> > postを押すと、Interceptorが呼ばれる。
> > submitを押すと、Interceptorが呼ばれない。
> >
> > HOT、COOL両方NGです。
> >
> > ライブラリはexampleβ3のlibを入れてください。
> > 実行環境はJava1.4.2_12、tomcat5.0.28で確認しました。
> > プロジェクト構成はexampleβ3と同じです。
> >
> > 以上よろしくお願いします。
> >
> >
> > 原田 <[E-MAIL ADDRESS DELETED]> wrote:
> >
> > > 原田です。
> > >
> > > 混在というか、SMART deploy環境だといろいろ難があるので、
> > > SMART deployに移行仕切れずにいる状態です。
> > >
> > > > AutoRegisterで登録したコンポーネントではなく
> > > > SMART deployで登録したコンポーネントが利用されているかもしれません。
> > >
> > > なるほど、2重登録されていて、SMART deployのほうが呼ばれているため、
> > > NGなのですね。
> > > SMART deployでActionを登録しない方法はパッケージ構成を崩す以外に
> > > ありますか?
> > >
> > > > s2struts:submitタグのactionで指定している内容を教えていただけないでしょうか。
> > >
> > > 普通にaction="#{xxxAction.xxx}"と指定しています。
> > >
> > >
> > >
> > > "Katsuhiko Nagashima" <[E-MAIL ADDRESS DELETED]> wrote:
> > >
> > > > 永島です。
> > > >
> > > > 設定内容について、おかしいところはないと思います。
> > > >
> > > > 気になる点が一点あります。
> > > >
> > > > Webアプリケーションの環境ですが、
> > > > SMART deployとAutoRegisterが混在しているのでしょうか?
> > > > SMART deployも利用している場合は
> > > > RootPackageNameが"com.xxx.ec"ですか?
> > > >
> > > > 混在している場合、
> > > > リクエストしたURLやs2struts:submitタグの指定によって、
> > > > AutoRegisterで登録したコンポーネントではなく
> > > > SMART deployで登録したコンポーネントが利用されているかもしれません。
> > > >
> > > > s2struts:submitタグのactionで指定している内容を教えていただけないでしょうか。
> > > >
> > > > よろしくお願いします。
> > > >
> > > > 07/02/21 に 原田<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > > > 原田です。
> > > > >
> > > > > β3に上げて、試してみたのですが、だめでした。
> > > > > ちょっとはしょってますが、以下のような感じで登録しています。
> > > > >
> > > > >   <include path="aop.dicon"/>
> > > > >
> > > > >   <component name="CheckLoginInterceoptor"  instance="prototype"
> > > > >                 class="com.xxx.ec.pc.interceptors.CheckLoginInterceptor">
> > > > >           <aspect>aop.lifecycleAdapter</aspect>
> > > > >   </component>
> > > > >
> > > > >   <component name="AutoLoginInterceoptor"  instance="prototype"
> > > > >                 class="com.xxx.ec.pc.interceptors.AutoLoginInterceptor">
> > > > >           <aspect>aop.lifecycleAdapter</aspect>
> > > > >   </component>
> > > > >
> > > > >   <component name="actionInterceptorChain"
> > > > >       class="org.seasar.framework.aop.interceptors.InterceptorChain">
> > > > >     <initMethod name="add"><arg>aop.traceInterceptor</arg></initMethod>
> > > > >   </component>
> > > > >
> > > > >   <component name="needLoginActionInterceptorChain"
> > > > >       class="org.seasar.framework.aop.interceptors.InterceptorChain">
> > > > >     <initMethod name="add"><arg>CheckLoginInterceoptor</arg></initMethod>
> > > > >   </component>
> > > > >
> > > > >   <component name="autoLoginActionInterceptorChain"
> > > > >       class="org.seasar.framework.aop.interceptors.InterceptorChain">
> > > > >     <initMethod name="add"><arg>AutoLoginInterceoptor</arg></initMethod>
> > > > >   </component>
> > > > >
> > > > >   <component
> > > > >     class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
> > > > >     <property name="instanceDef">
> > > > >       @[E-MAIL ADDRESS DELETED]
> > > > >     </property>
> > > > >     <property name="autoNaming">
> > > > >       <component class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
> > > > >     </property>
> > > > >     <initMethod name="addClassPattern">
> > > > >       <arg>"com.xxx.ec"</arg>
> > > > >       <arg>".*ActionImpl"</arg>
> > > > >     </initMethod>
> > > > >   </component>
> > > > >
> > > > >   <component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
> > > > >     <property name="interceptor">actionInterceptorChain</property>
> > > > >     <initMethod name="addClassPattern">
> > > > >       <arg>"com.xxx.ec.web.pc"</arg>
> > > > >       <arg>".*ActionImpl"</arg>
> > > > >     </initMethod>
> > > > >   </component>
> > > > >
> > > > >   <component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
> > > > >     <property name="interceptor">autoLoginActionInterceptorChain</property>
> > > > >     <initMethod name="addClassPattern">
> > > > >       <arg>"com.xxx.ec.web.pc"</arg>
> > > > >       <arg>".*ActionImpl"</arg>
> > > > >     </initMethod>
> > > > >   </component>
> > > > >
> > > > >   <component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
> > > > >     <property name="interceptor">needLoginActionInterceptorChain</property>
> > > > >     <initMethod name="addClassPattern">
> > > > >       <arg>"com.xxx.ec.web.pc.needlogin"</arg>
> > > > >       <arg>".*ActionImpl"</arg>
> > > > >     </initMethod>
> > > > >   </component>
> > > > >
> > > > > どこかおかしいですか?
> > > > >
> > > > > よろしくお願いします。
> > > > >
> > > > >
> > > > > 原田 <[E-MAIL ADDRESS DELETED]> wrote:
> > > > >
> > > > > > 原田です。
> > > > > >
> > > > > > お手数ですので、再度確認します。
> > > > > >
> > > > > >
> > > > > >
> > > > > > "Katsuhiko Nagashima" <[E-MAIL ADDRESS DELETED]> wrote:
> > > > > >
> > > > > > > 永島です。
> > > > > > >
> > > > > > > s2struts:submitタグでactionを指定してメソッドを呼び出した場合でも
> > > > > > > Interceptorは呼び出されます。
> > > > > > > ですので、S2Strutsか設定の問題と思います。
> > > > > > >
> > > > > > > 私のS2Struts V1.3.0-beta-2の環境では再現できませんでしたので、
> > > > > > > 調査のため、以下のdiconの設定内容を教えていただけないでしょうか?
> > > > > > > - SMART deployを利用している場合は、customizer.diconの設定内容
> > > > > > > - AutoRegisterを利用している場合は、AspectAutoRegisterを定義しているdiconの設定内容
> > > > > > >
> > > > > > > よろしくお願いします。
> > > > > > >
> > > > > > > 07/02/19 に 原田<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > > > > > > 原田です。
> > > > > > > >
> > > > > > > > S2Struts V1.3.0-beta-2です。
> > > > > > > >
> > > > > > > > s2struts:submitタグでactionを指定してメソッドを呼んでいるのですが、その際、
> > > > > > > > 設定したInterceptorが呼ばれないのですが、誰か情報をお持ちじゃありませんか?
> > > > > > > >
> > > > > > > > だいぶ前に試したときは呼ばれたような気がするのですが、別Actionへフォワードされて、
> > > > > > > > そっちで呼ばれていたのを勘違いしたのかもしれません。
> > > > > > > >
> > > > > > > > それともそういうものですか?
> > > > > > > >
> > > > > > > > 以上よろしくお願いします。
> > > > > > > >
> > > > > > > > _______________________________________________
> > > > > > > > Seasar-user mailing list
> > > > > > > > [E-MAIL ADDRESS DELETED]
> > > > > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Katsuhiko Nagashima
> > > > > > > _______________________________________________
> > > > > > > Seasar-user mailing list
> > > > > > > [E-MAIL ADDRESS DELETED]
> > > > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > > >
> > > > > > _______________________________________________
> > > > > > Seasar-user mailing list
> > > > > > [E-MAIL ADDRESS DELETED]
> > > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > >
> > > > > _______________________________________________
> > > > > Seasar-user mailing list
> > > > > [E-MAIL ADDRESS DELETED]
> > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > >
> > > >
> > > >
> > > > --
> > > > Katsuhiko Nagashima
> > > > _______________________________________________
> > > > Seasar-user mailing list
> > > > [E-MAIL ADDRESS DELETED]
> > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > >
> > > _______________________________________________
> > > Seasar-user mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
Katsuhiko Nagashima



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