[Seasar-user:12826] Re: [S2]ThrowsInterceptorが呼び出されない

小山 健二 [E-MAIL ADDRESS DELETED]
2008年 2月 12日 (火) 19:15:21 JST


小林さん

小山です。お世話になっています。

以下の件ですが、解決できました。

customizer.diconの設定をapp_aop.diconに持ってきたら、
Hot deploy でも、mailSenderが呼び出されました。

app_app.dicon
<component name="mailSender" class="jp.co.tmeic.kobe.tehai.service.MailSenderImpl" />
<component name="handleThrowableInterceptor"
 class="hoge.interceptor.HandleThrowableInterceptor">
 <property name="mailSender">mailSender</property>
</component>



小山 健二 さんは書きました:
> 小林さん
> 
> 小山です。お世話になっています。
> 
> アドバイス頂いた方法で、oracleSQLExceptionThrowsInterceptor を
> 呼びさせるようになりました。ありがとうございます。
> 
> さらに、Exceptionが発生したら、とにかくメールで通知させようとしています。
> そこで、oracleSQLExceptionThrowsInterceptor と同様にdiconを設定して
> HandleThrowableInterceptorなるものを呼び出すところまでできました。
> この処理の中で、メールを送信させようとしています。
> Cool deeploy の時は、以下の内容でメール送信mailSenderが呼び出されるのですが、
> Hot deploy の時に、mailSenderが呼び出されません。
> どうも、コンポーネントがロードされていないようです。
> 
> Hot deployで、呼び出せるようにしたいのですが、
> アドバイス頂けないでしょうか?
> 
> app_app.dicon
> <components namespace="app_aop">
> 	<include path="convention.dicon"/>
> 	<component name="actionSupportInterceptor" class="org.seasar.teeda.extension.interceptor.ActionSupportInterceptor" />
> 	<component name="appFacesExceptionThrowsInterceptor" class="org.seasar.teeda.core.interceptor.AppFacesExceptionThrowsInterceptor" />
> 	<component name="loginAuthInterceptor" class="hoge.interceptor.LoginAuthInterceptor" />	
> 	<component name="handleThrowableInterceptor" class="hoge.interceptor.HandleThrowableInterceptor"/>
> 	<component name="oracleSQLExceptionThrowsInterceptor" class="hoge.interceptor.OracleSQLExceptionThrowsInterceptor"/>
> </components>
> 
> customizer.dicon
> 	<component name="mailSender" class="hoge.service.MailSenderImpl" />
> 	<component name="handleThrowableInterceptor" class="hoge.interceptor.HandleThrowableInterceptor">
> 		<property name="mailSender">mailSender</property>
> 	</component>
> *Hotのときには、上の設定では、hoge.service.MailSenderImpl が登録されないようです。
> 
> 	<component name="handleThrowableCustomizer" class="org.seasar.framework.container.customizer.AspectCustomizer">
> 		<property name="interceptorName">"app_aop.handleThrowableInterceptor"</property>
> 	</component>
> 	<component name="oracleCustomizer" class="org.seasar.framework.container.customizer.AspectCustomizer">
> 		<property name="interceptorName">"app_aop.oracleSQLExceptionThrowsInterceptor"</property>
> 	</component>
> 	<component name="daoSupportAspectCustomizer" class="org.seasar.framework.container.customizer.AspectCustomizer">
> 		<property name="interceptorName">"dao.interceptor"</property>
> 	</component>
> 	<component name="daoCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
> 		<initMethod name="addCustomizer">
> 			<arg>defaultCustomizer</arg>
> 		</initMethod>
> 		<initMethod name="addCustomizer">
> 			<arg>handleThrowableCustomizer</arg>
> 		</initMethod>
> 		<initMethod name="addCustomizer">
> 			<arg>oracleCustomizer</arg>
> 		</initMethod>
> 		<initMethod name="addCustomizer">
> 			<arg>daoSupportAspectCustomizer</arg>
> 		</initMethod>
> 	</component>
> 
> バージョンは以下のとおりです。
> S2 2.4.11
> S2Dao 1.0.40
> Teeda 1.0.6
> 
> 


-- 
(^_^)試して見る事に失敗はない。明日は今日と違う自分になる。
小山健二 (Kenji Koyama) 
[E-MAIL ADDRESS DELETED]


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