2015-01-21 74 views

回答

1

是的,這是事實。由於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的良好結果或下降。

+0

在我的配置中,我將網關創建爲一個Bean:「@Bean @ServiceActivator」MessageHandler wsOutboundGateway()。如果我設置了另一個網關,我該如何定義應該執行哪個bean?你有沒有DestinationProvider的例子? – crm86 2015-01-21 13:17:21

+0

如果你有幾個帶有@ ServiceActivator的'wsOutboundGateway' @ Bean's用於不同的URL,你應該在上游使用'@Router'來確定哪個URL現在可用。 – 2015-01-21 14:12:25

+1

但是,如果我如何測試新的URLConnection(url).connect()如果我有https證書,證書或任何種類的安全 – crm86 2015-01-21 15:37:24