Spring リモーティングと OSGI を使用しています。
<bean id="httpServer" class="org.springframework.remoting.support.SimpleHttpServerFactoryBean">
<property name="contexts">
<util:map>
<entry key="/remoting/Service1" value-ref="serviceBean1"/>
</util:map>
</property>
<property name="port" value="8080" />
</bean>
以下のように動的リストを宣言します。
<osgi:list id="serviceList" interface="com.xyz.IRemoteService" member-type="service-object">
これらのサービスを動的に登録できるようになりました。ある時点で、serviceList は com.xyz.IRemoteService を実装するすべてのサービス参照を保持します。このサービス リストを contexts プロパティに設定するにはどうすればよいですか?
更新 1:
com.xyz.IRemoteService には 2 つのメソッドがあり、1 つはキー、つまり URL を返し、もう 1 つは SimpleHttpInvokerServiceExporter オブジェクトを返します。
<bean id="httpServer" class="org.springframework.remoting.support.SimpleHttpServerFactoryBean">
<property name="contexts">
<util:map>
<entry key="/remoting/ArchiveEDSImpl" value-ref="archiveEDS" />
<entry key="#{serviceList[0].url}" value="#{serviceList[0].httpHandler}" />
<entry key="#{serviceList[1].url}" value="#{serviceList[1].httpHandler}" />
</util:map>
</property>
<property name="port" value="8081" />
</bean>
<osgi:list id="serviceList" interface="com.xyz.IRemoteServiceProvider" member-type="service-object">
</osgi:list>
これはすばらしいことですが、bean httpserver が初期化されるときに serviceReferenceList に少なくとも 2 つの要素がある場合にのみ機能します。リストのサイズに基づいてこれを動的に構成するにはどうすればよいですか??