У меня 5 проектов, 4 из которых выполняются на консоли (скажем, A, B, C и D) с java -jar A.jar
и т. Д., И 1 веб-приложение (E). Веб-приложение развернуто на нескольких изолированных серверах, на некоторых из которых также работает комбинация A, B, C и D.
В весеннем конфигурационном файле для веб-приложения у меня есть 4 RmiProxyFactoryBean
объявления, по одному для каждого из проектов A, B, C и D, где у каждого из этих проектов есть 1 RmiServiceExporter
.
Моя проблема заключается в том, что веб-приложение выдает исключение при запуске, если один из проектов (A-D) не запущен. Я пытался использовать @Autowired(required=false)
в контроллерах, использующих эти службы, но безрезультатно. Чтобы заставить его работать, мне нужно отредактировать весенний файл веб-приложения, чтобы закомментировать RmiProxyFactoryBean
для проектов, которые не запущены. Есть ли способ сообщить 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>