编组 Web 服务出站网关的动态提供者
Dynamic provider for a Marshalling web service outbound gateway
是否可以为编组 Web 服务出站网关设置动态提供程序?
我的意思是,如果我尝试使用 http://100.0.0.1 and it not works, I would like to try http://100.0.0.2 而不是
我目前的配置:
MarshallingWebServiceOutboundGateway gw = new MarshallingWebServiceOutboundGateway(provider, jaxb2Marshaller(), jaxb2Marshaller());
是的,没错。由于 MarshallingWebServiceOutboundGateway
允许注入 DestinationProvider
,您可以随意提供任何自定义实现。
对于您的 fault-tolerant
用例,您应该:new URLConnection(url).connect()
在您的 DestinationProvider
实现中测试与目标服务器的连接。
更新
But If I how can I test new URLConnection(url).connect() if I have https credentials, certificate or any kind of security
好吧,Spring 集成的另一个很好的解决方案是 load-balancing
和多个订阅者相同 DirectChannel
:
@Bean
public MessageChannel wsChannel() {
return new DirectChannel(null);
}
切换到默认 RoundRobinLoadBalancingStrategy
。
之后你可以有几个 @ServiceActivator(inputChannel="wsChannel")
。当第一个失败时,消息被发送到第二个,依此类推,直到每个 URL.
的好结果或失败
是否可以为编组 Web 服务出站网关设置动态提供程序?
我的意思是,如果我尝试使用 http://100.0.0.1 and it not works, I would like to try http://100.0.0.2 而不是
我目前的配置:
MarshallingWebServiceOutboundGateway gw = new MarshallingWebServiceOutboundGateway(provider, jaxb2Marshaller(), jaxb2Marshaller());
是的,没错。由于 MarshallingWebServiceOutboundGateway
允许注入 DestinationProvider
,您可以随意提供任何自定义实现。
对于您的 fault-tolerant
用例,您应该:new URLConnection(url).connect()
在您的 DestinationProvider
实现中测试与目标服务器的连接。
更新
But If I how can I test new URLConnection(url).connect() if I have https credentials, certificate or any kind of security
好吧,Spring 集成的另一个很好的解决方案是 load-balancing
和多个订阅者相同 DirectChannel
:
@Bean
public MessageChannel wsChannel() {
return new DirectChannel(null);
}
切换到默认 RoundRobinLoadBalancingStrategy
。
之后你可以有几个 @ServiceActivator(inputChannel="wsChannel")
。当第一个失败时,消息被发送到第二个,依此类推,直到每个 URL.