gpt4 book ai didi

java - RmiProxyFactoryBean + Autowired(required=false)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:35 25 4
gpt4 key购买 nike

我有 5 个项目 - 其中 4 个在控制台上运行(比如 A、B、C 和 D),使用 java -jar A.jar 等和 1 个 Web 应用程序 (E)。 Web 应用程序部署在许多孤立的服务器上,其中一些服务器还同时运行 A、B、C 和 D。

在 web 应用程序的 spring 配置文件中,我有 4 个 RmiProxyFactoryBean 声明,分别对应项目 A、B、C 和 D,其中每个项目都有 1 个 RmiServiceExporter.

我的问题是,如果其中一个项目 (A-D) 未运行,Web 应用程序会在启动时抛出异常。我尝试在使用这些服务的 Controller 中使用 @Autowired(required=false) 无济于事。为了使其正常工作,我必须去编辑 Web 应用程序 spring 文件以注释掉未运行的项目的 RmiProxyFactoryBean。有没有一种方法可以告诉 RmiProxyFactoryBean 尝试检索 bean,如果它失败了,请不要担心 - 与使用 autowire 的 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>

最佳答案

在您的 RmiProxyFactoryBean 中,还将 lookupStubOnStartup 属性设置为“false”。这应该可以防止客户端代理在启动时抛出异常。

关于java - RmiProxyFactoryBean + Autowired(required=false),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7484313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com