[Seasar-user:11835] Re: 【S2RMI】 Implファイルがあるとリモート実行されない
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 11月 28日 (水) 19:00:16 JST
小林 (koichik) です.
Date: Tue, 27 Nov 2007 22:05:41 +0900
From: [E-MAIL ADDRESS DELETED]
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:11824] Re: 【S2RMI】 Implファイルがあるとリモート実行されない
> しかしながら、RMIのコネクターを2個以上コンポーネント化させて
> パッケージ毎にコネクターを割り当てる方法が思いつかない状態です。
現状だと,これを SMART deploy のみで実現
するのは困難です.
Service 等は SMART deploy を使うことにして,
Interceptor や Connector は dicon に定義する方が
いいと思います.
まずは RemotingInterceptor を必要なだけ定義します.
<component name="remotingInterceptorA"
class="org.seasar.remoting.common.interceptor.RemotingInterceptor">
<property name="forceRemote">true</property>
<property name="connector">
<component class="org.seasar.remoting.rmi.connector.impl.RMIConnectorImpl">
<property name="baseURLAsString">"rmi://serverA:55001/"</property>
<initMethod name="lookup"/>
</component>
</property>
</components>
<component name="remotingInterceptorB"
class="org.seasar.remoting.common.interceptor.RemotingInterceptor">
<property name="forceRemote">true</property>
<property name="connector">
<component class="org.seasar.remoting.rmi.connector.impl.RMIConnectorImpl">
<property name="baseURLAsString">"rmi://serverB:55001/"</property>
<initMethod name="lookup"/>
</component>
</property>
</components>
S2Remoting 1.1.2 から,forceRemote プロパティを
true にすることで,抽象メソッドでなくても
リモート呼び出しをするようになりました.
次に,ServiceCustomizer でパッケージごとに
使用する RemotingInterceptor を指定します.
<component name="serviceCustomizer"
class="org.seasar.framework.container.customizer.CustomizerChain">
<initMethod name="addCustomizer">
<arg>
<component class="org.seasar.framework.container.customizer.AspectCustomizer">
<property name="interceptorName">"remotingInterceptorA"</property>
<initMethod name="addClassPattern">
<arg>"xxx.yyy.zzz.aaa"</arg>
<arg>".*"</arg>
</initMethod>
</component>
</arg>
</initMethod>
<initMethod name="addCustomizer">
<arg>
<component class="org.seasar.framework.container.customizer.AspectCustomizer">
<property name="interceptorName">"remotingInterceptorB"</property>
<initMethod name="addClassPattern">
<arg>"xxx.yyy.zzz.bbb"</arg>
<arg>".*"</arg>
</initMethod>
</component>
</arg>
</initMethod>
</component>
addClassPattern で特定の RemotingInterceptor を
適用するパッケージを指定してください.
# 複数指定可
例によって (?) 試さずにメーラで書いてるだけなので
問題あるかもしれませんが,その際にはまた報告ください.
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>
Seasar-user メーリングリストの案内