是否可以爲編組網絡服務出站網關設置動態提供者?編組網絡服務出站網關的動態提供者
我的意思是,如果我嘗試例如:http://100.0.0.1,它不工作,我想嘗試http://100.0.0.2代替
我目前的配置:
MarshallingWebServiceOutboundGateway gw = new MarshallingWebServiceOutboundGateway(provider, jaxb2Marshaller(), jaxb2Marshaller());
是否可以爲編組網絡服務出站網關設置動態提供者?編組網絡服務出站網關的動態提供者
我的意思是,如果我嘗試例如:http://100.0.0.1,它不工作,我想嘗試http://100.0.0.2代替
我目前的配置:
MarshallingWebServiceOutboundGateway gw = new MarshallingWebServiceOutboundGateway(provider, jaxb2Marshaller(), jaxb2Marshaller());
是的,這是事實。由於MarshallingWebServiceOutboundGateway
允許注入DestinationProvider
,因此您可以隨意提供任何自定義實現。
對於你的fault-tolerant
用例你應該做:new URLConnection(url).connect()
來測試連接到目標服務器的那個你的DestinationProvider
的實現。
UPDATE
但如果我我怎麼可以測試新的URLConnection(URL)。將()如果我有HTTPS證書,證書或任何類型的安全
好了,另一來自Spring Integration的良好解決方案是load-balancing
和幾位訂戶相同DirectChannel
:
@Bean
public MessageChannel wsChannel() {
return new DirectChannel(null);
}
切換默認RoundRobinLoadBalancingStrategy
。 然後你可以有幾個@ServiceActivator(inputChannel="wsChannel")
。當第一個失敗時,該消息被髮送到第二個等,直到每個URL的良好結果或下降。
在我的配置中,我將網關創建爲一個Bean:「@Bean @ServiceActivator」MessageHandler wsOutboundGateway()。如果我設置了另一個網關,我該如何定義應該執行哪個bean?你有沒有DestinationProvider的例子? – crm86 2015-01-21 13:17:21
如果你有幾個帶有@ ServiceActivator的'wsOutboundGateway' @ Bean's用於不同的URL,你應該在上游使用'@Router'來確定哪個URL現在可用。 – 2015-01-21 14:12:25
但是,如果我如何測試新的URLConnection(url).connect()如果我有https證書,證書或任何種類的安全 – crm86 2015-01-21 15:37:24