[Seasar-user:11404] Re: [S2Struts]HOT Deploy時にPojoFormを親クラスにキャストしようとした場合にClassCastExceptionが発生
nobu
[E-MAIL ADDRESS DELETED]
2007年 11月 2日 (金) 09:40:37 JST
近藤(nobu)です。
>中村さん
下記内容で試してみます。
ありがとうございました。
以上
Toshihiro Nakamura さんは書きました:
> 中村(taedium)です。
>
>> 「FilterではなくS2のインターセプタ内で処理するようにしてもいいかもしれ
>> ません。」
>>
>> というのはどのような方法でしょうか?ドキュメントを見ているのですが、具体
>> 的な設定方法がわかりません。
>>
>> よろしければ設定例か、参考ドキュメントを教えて下さい。
>
> 次のドキュメントが参考になると思います。
> http://s2container.seasar.org/2.4/ja/aop.html#OriginalInterceptor
> http://s2container.seasar.org/2.4/ja/DIContainer.html#SMARTdeploy
>
>
> 設定例は以下に示します。
>
> まず、SMART deployで認識される
> interceptorパッケージにインターセプタのクラスを作成します。
> 名前はFooInterceptorのように「Interceptor」で終わるようにしてください。
> 任意の処理をこのインタセプター内で行ってください。
>
> public class FooInterceptor extends AbstractInterceptor {
> public Object invoke(final MethodInvocation invocation) throws Throwable {
> System.out.println("FOO");
> return invocation.proceed();
> }
> }
>
> インターセプタを作成したら、
> インターセプタを特定のコンポーネントに適用するために、
> customizer.diconを修正します。
> 例えば、Pageクラスに適用する場合は次のように記述します。
> interceptorNameプロパティには上記で定義したクラスの単純名の
> 先頭を小文字にしたものを指定します。
>
> <component name="pageCustomizer"
> class="org.seasar.framework.container.customizer.CustomizerChain">
> <initMethod name="addCustomizer">
> <arg>
> <component class="org.seasar.framework.container.customizer.AspectCustomizer">
> <property name="interceptorName">"fooInterceptor"</property>
> <property name="pointcut">"do.*, initialize, prerender"</property>
> </component>
> </arg>
> </initMethod>
> </component>
>
>> また、この現象の回避策は、現時点では「部分的にHot Deployを使用しない」
>> という結論になるということでよろしいでしょうか?
>
> Filterで扱うようなコンポーネントをHot deploy対象から外すか、
> 上記のようにインターセプタで扱うかの2つの方法があるということに
> なると思います。
Seasar-user メーリングリストの案内