Я пытаюсь реализовать переход на другой ресурс для клиента веб-службы в моменты, когда сервер, на котором размещена веб-служба, перезапускается. Я попытался реализовать следующий код, который работал очень хорошо, но с двумя проблемами:Проблемы с отказом CXF
- В первый раз «провал» произошло, то клиент будет перейти к следующему альтернативному адресу, но не на самом деле завершить вызов веб-службы ,
- При восстановлении основного сервера клиент не переключается на использование этого сервера. Вместо этого он будет продолжать использовать тот сервер, который в настоящее время используется.
Вот код:
<jaxws:client id="someService"
serviceClass="com.foo.bar.webservice.service.SomeService"
address="https://myserver.server.net/webservices/cxf/SomeService"
username="myuser"
password="mypassword">
<jaxws:features>
<clustering:failover>
<clustering:strategy>
<bean class="org.apache.cxf.clustering.SequentialStrategy">
<property name="alternateAddresses">
<list>
<value>otherserver/webservices/cxf/SomeService</value>
<value>thirdserver/webservices/cxf/SomeService</value>
</list>
</property>
</bean>
</clustering:strategy>
</clustering:failover>
</jaxws:features>
</jaxws:client>
Любые идеи?
Хотя я согласен, что переход на другой ресурс за счет балансировки нагрузки, вероятно, самым чистым и самым простым решением, не будет для меня все работает. Этот вызов службы инициируется приемом JMS-сообщения, и я не могу позволить отказаться от сообщения, даже если все потенциальные узлы недоступны. –