Spring 3.2.6
可能有一个我错过的简单解决方案,但在过去的几天里我一直在搜索董事会,尝试了一些东西,到目前为止什么都没有 - 所以我想我会咨询专家。
我的应用:我在applicationContext.xml
中配置了 5 个 JaxWsPortProxyFactoryBean
bean,它们连接到并使用各种 Web 服务。 一切都很好,非常好!
问题:当我的应用启动时,可能有 1 个或多个 Web 服务处于关闭状态或无法访问。 这很好,因为我的应用程序可以在没有它们的情况下运行;但是,有没有办法在收到TimeoutException
(或由于与 WS 的连接而导致的任何异常(后继续处理上下文中的其他 bean?
我希望在JaxWsPortProxyFactoryBean
有像continueOnError
或类似的东西。
希望这是有道理的。
可以通过将 lookupServiceOnStartup
属性设置为 false 来禁用启动时对 Web 服务的查找/检查。
<bean id="yourService" class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean">
<property name="lookupServiceOnStartup" value="false" />
// Other properties
</bean>
优点是应用程序启动速度更快,缺点是首次调用 Web 服务可能需要更长的时间。
您可以查看 javadoc 以获取更多信息,lookupServiceOnStartup
属性在 JaxWsPortClientInterceptor
上定义。
可能的解决方案是使用 setLookupServiceOnStartup
并将其设置为 false。
http://static.javadoc.io/org.springframework/spring-web/3.2.6.RELEASE/index.html?org/springframework/remoting/jaxws/JaxWsPortClientInterceptor.html