[Seasar-user:8163] Re: Interceptorについて
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 6月 7日 (木) 18:00:06 JST
小林 (koichik) です.
Date: Thu, 7 Jun 2007 10:00:49 +0900
From: "ぺにー" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:8142] Re: Interceptorについて
> Eclipseコンソールログを添付しておりますのでご確認お願いしたいと思います。
at jp.co.gihyo.javaexpert.teeda.web.error.ErrorPage.doAction(ErrorPage.java:6)
at jp.co.gihyo.javaexpert.teeda.web.error.ErrorPage$$EnhancedByS2AOP$$15cd49f.$$doAction$$invokeSuperMethod$$(ErrorPage$$EnhancedByS2AOP$$15cd49f.java)
at jp.co.gihyo.javaexpert.teeda.web.error.ErrorPage$$EnhancedByS2AOP$$15cd49f$$MethodInvocation$$doAction0.proceed(MethodInvocationClassGenerator.java)
at org.seasar.framework.aop.interceptors.ClassLoaderAwareTraceInterceptor.invoke(ClassLoaderAwareTraceInterceptor.java:53)
at jp.co.gihyo.javaexpert.teeda.web.error.ErrorPage$$EnhancedByS2AOP$$15cd49f$$MethodInvocation$$doAction0.proceed(MethodInvocationClassGenerator.java)
at jp.co.gihyo.javaexpert.teeda.web.error.ErrorPage$$EnhancedByS2AOP$$15cd49f.doAction(ErrorPage$$EnhancedByS2AOP$$15cd49f.java)
ErrorPage にトレースインターセプタが適用されてますね.
[Seasar-user:8102] の ErrorPage.dicon では
<components>
<component name="handleThrowableInterceptor"
class="jp.co.gihyo.javaexpert.teeda.web.error.HandleThrowableInterceptor">
</component>
<component class="jp.co.gihyo.javaexpert.teeda.web.error.ErrorPage">
<aspect>handleThrowableInterceptor</aspect>
</component>
</components>
となっており,トレースインターセプタは指定されて
いないことから,この定義は効いてなくて SMART deploy で
自動登録された ErrorPage が動いているものと思われます.
と書いていて,ErrorPage の <component> 要素に
name 属性がないことに気づきました.(^^;
<component name="errorPage" class="jp.co.gihyo.javaexpert.teeda.web.error.ErrorPage">
^^^^^^^^^^^^^^^^
このために SMART deploy での自動登録の方が
有効になっていたのだと思います.
SMART deploy を使っているなら,インターセプタの
設定も上記のように個別にするのではなく,
customizer.dicon でするのがいいと思います.
<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">"handleThrowableInterceptor"</property>
<property name="pointcut">"do.*, initialize, prerender"</property>
</component>
</arg>
</initMethod>
<!-- ここまで -->
</component>
のようになります.
元々の customizer.dicon に pageCustomizer の設定が
あると思うので,「ここから」〜「ここまで」の間を
追加してください.
詳しくは「SMART deployの設定方法」を参照してください.
http://s2container.seasar.org/ja/S2.4SmartDeployConfig.html
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>
Seasar-user メーリングリストの案内