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

原田 [E-MAIL ADDRESS DELETED]
2007年 2月 23日 (金) 13:14:35 JST


原田です。

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

じゃぁ、pointcutを指定するか、interfaceに追加すればいいのですね。
しかし、今回はログイン必須チェックにinterceptorを使っているのですが、
抜け道があるのはよくありません。

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

ぜひお願いしたいです。

以上よろしくお願いします。


"Katsuhiko Nagashima" <[E-MAIL ADDRESS DELETED]> wrote:

> 永島です。
> 
> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user




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