2014-08-30 4 views
1

Я создал клиент веб-службы с помощью CXF сконфигурированные с помощью Spring, как показано ниже:CXF Тайм-аут не работает

<!-- HTTP Conduit --> 
<http-conf:conduit name="*.http-conduit"> 
    <http-conf:client ConnectionTimeout="30000" 
     ReceiveTimeout="30000" /> 
</http-conf:conduit> 

<!-- Client Proxies --> 
<jaxws:client name="wsClient" serviceName="..." 
    serviceClass="..." 
    address="..." wsdlLocation="..."> 
</jaxws:client> 

Теперь, когда служба вверх, работает нормально Everything, но проблема в том, когда услуга вниз значения тайм-аута в HTTPConduit игнорируются, и я получаю следующее сообщение об ошибке после 1 секунды:

org.apache.cxf.interceptor.Fault: Could not send Message. 
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:570) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:479) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335) 
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:136) 

Caused by: java.net.ConnectException: Tried all: '1' addresses, but could not connect over HTTP to server: '192.168.80.55', port: '24004' 
at weblogic.net.http.HttpClient.openServer(HttpClient.java:333) 
at weblogic.net.http.HttpClient.openServer(HttpClient.java:425) 
at weblogic.net.http.HttpClient.New(HttpClient.java:252) 
at weblogic.net.http.HttpURLConnection.connect(HttpURLConnection.java:213) 
at weblogic.net.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:279) 
at org.apache.cxf.transport.http.HTTPCon2014-08-30 13:06:59 ERROR: javax.xml.ws.WebServiceException: Could not send Message. 

Любой ключ, почему потребитель не остается в течение всего срока ожидания, прежде чем поднять эту ошибку?

ответ

1

Тайм-аут не применяется, когда сервер «вниз».

ConnectionTimeout - сколько подождать до подключения.

ReceiveTimeout - это сколько подождать, прежде чем получить ответ.

В вашем случае сервер не прослушивает этот порт, поэтому, когда ваши клиенты пытаются подключиться, клиенты сбой немедленно.

0

Что вы подразумеваете под «вниз»? Служба отвечает на 404? Закрытый порт (соединение отказано)? Хост отключен (невозможно подключение из-за таймаута)?

+0

По обслуживанию отключено, я имею в виду, что ни один из хостов не работает, либо служба не работает на этом порту. –

Смежные вопросы