[Seasar-user:11824] Re: 【S2RMI】 Implファイルがあるとリモート実行されない

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 11月 27日 (火) 22:05:41 JST


関修康です。

>小林さん
役割を変更する方法はenv.txtを利用してCustomizerを切り替えたいと思います。

しかしながら、RMIのコネクターを2個以上コンポーネント化させて
パッケージ毎にコネクターを割り当てる方法が思いつかない状態です。

具体的に現在検証用のcreator.diconへ以下の設定を記述しています。

■creator.dicon

<component class="org.seasar.remoting.common.creator.ConnectorCreator">
	<property name="nameSuffix">"AConnector"</property>
	<property name="connectorCustomizer">
		<component name="AconnectorCustomizer" class="org.seasar.remoting.rmi.customizer.RMIConnectorCustomizer">
			<property name="baseURLAsString">"rmi://serverA:55001/"</property>
		</component>
	</property>
</component>
<component class="org.seasar.remoting.common.creator.ConnectorCreator">
	<property name="nameSuffix">"BConnector"</property>
	<property name="connectorCustomizer">
		<component name="BconnectorCustomizer" class="org.seasar.remoting.rmi.customizer.RMIConnectorCustomizer">
			<property name="baseURLAsString">"rmi://serverB:55001/"</property>
		</component>
	</property>
</component>

想定としては、ここで「RMIAConnector」と「RMIBConnector」が作成されているはずです。

次にRemotingInterceptorを継承した「ARemotingInterceptor」「BRemotingInterceptor」を作成します。

■ARemotingInterceptor.java

 public static final String connector_BINDING = "RMIAConnector";

■BRemotingInterceptor.java

 public static final String connector_BINDING = "RMIBConnector";

とそれぞれ自動バインディングの値を変更したクラスを作成することで、
自動的にコネクターがセットされるはず。

しかしながら、この段階でアプリケーションを起動すると
[ESSR0073]OGNLで例外が発生しました。理由は[ESSR0046]コンポーネント(RMIBConnector)が見つかりません。
とのエラーで起動できませんでした。

ここでコネクターをセットする事が出来れば後は、RemotingInterceptorCustomizerを作成し、
それをServiceCustomizerにChainしようとしています。


この様にConnectorCreatorを2個作成し、ここで作られたConnectorを使ったCustomizerを最終的に
ServiceCustomizerのCustomizerChainへ渡したいのですがCustomizerの記述が分かりません。

もう少し考えてみたいと思います。




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