Да, это правда. Поскольку MarshallingWebServiceOutboundGateway
позволяет вводить DestinationProvider
, вы можете предоставить любую пользовательскую реализацию.
Для вашего fault-tolerant
прецедента необходимо сделать: new URLConnection(url).connect()
, чтобы проверить подключение к целевому серверу в том, что ваша реализация DestinationProvider
.
UPDATE
Но если я, как я могу проверить новый URLConnection (URL) .Подключать(), если у меня есть учетные данные по протоколу HTTPS, сертификат или любой вид безопасности
Ну, еще хорошее решение от весенней интеграции составляет load-balancing
и несколько подписчиков на то же самое DirectChannel
:
@Bean
public MessageChannel wsChannel() {
return new DirectChannel(null);
}
для переключения по умолчанию RoundRobinLoadBalancingStrategy
. И после этого у вас может быть несколько @ServiceActivator(inputChannel="wsChannel")
. Когда первый из них терпит неудачу, сообщение отправляется ко второму и т. Д. До получения хорошего результата или падения для каждого URL-адреса.
В моей конфигурации я создаю шлюз в качестве компонента с: «@Bean @ServiceActivator» MessageHandler wsOutboundGateway(). Если я установил другой шлюз, как я могу определить, какой bean-компонент должен быть выполнен? У вас есть пример DestinationProvider? – crm86
Если у вас есть несколько '' wsOutboundGateway' 'Bean' 'с' @ ServiceActivator' для разных URL-адресов, вы должны использовать '@ Router' вверх по течению, чтобы определить, какой URL-адрес доступен сейчас. –
Но если я могу проверить новый URLConnection (url) .connect(), если у меня есть учетные данные https, сертификат или любой вид безопасности. – crm86