3

java -jar A.jar私は 5 つのプロジェクトを持っています。そのうちの 4 つは、 etc と 1 つの Web アプリケーション (E)を使用してコンソール (A、B、C、D など) で実行されます。Web アプリケーションは、A、B、C、および D の組み合わせが実行されているいくつかの分離されたサーバーにデプロイされています。

Web アプリケーションの Spring 構成ファイルにはRmiProxyFactoryBean、プロジェクト A、B、C、D のそれぞれに 1 つずつ、4 つの宣言があります。これらのプロジェクトにはそれぞれ 1 がありRmiServiceExporterます。

私の問題は、プロジェクト (AD) の 1 つが実行されていない場合、Web アプリケーションが起動時に例外をスローすることです。@Autowired(required=false)これらのサービスを使用してコントローラーで使用しようとしましたが、役に立ちませんでした。RmiProxyFactoryBeanそれを機能させるには、Web アプリのスプリング ファイルを編集して、実行されていないプロジェクトをコメント アウトする必要があります。ビーンを取得しようとするように指示する方法はありますか?RmiProxyFactoryBeanそれが失敗した場合でも心配する必要はありませんrequired=false

私の設定は現在次のようになっています:

<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
    <property name="service"          ref="diagramAssociationService" />
    <property name="serviceName"      value="diagramAssociationService"/>
    <property name="serviceInterface" value="com.act.xv.service.IDiagramAssociationService"/>
</bean>

<bean id="diagramAssociationService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
    <property name="serviceUrl" value="rmi://${xv.deploy.location}/diagramAssociationService"/>
    <property name="serviceInterface" value="com.act.xv.service.IDiagramAssociationService"/>
    <property name="refreshStubOnConnectFailure" value="true" />
</bean>
4

1 に答える 1

3

RmiProxyFactoryBean で、lookupStubOnStartup プロパティも「false」に設定します。これにより、クライアント プロキシが起動時に例外をスローするのを防ぐことができます。

于 2011-11-09T03:43:23.763 に答える