SOAP Тайм-аут чтения веб-сервисов - PullRequest
0 голосов
/ 20 января 2020

Я перевожу некоторые веб-сервисы из WebSphere / Axis в CXF, я выполнил все необходимые настройки, чтобы довести работу до определенного момента. Но я продолжаю получать эту ошибку, когда я запускаю свое веб-приложение:

    20-Jan-2020 14:27:47.333 WARNING [RLC-0120085637269] org.apache.cxf.phase.PhaseInterceptorChain.doDefaultLogging Interceptor for {http://logicalprovisioning.atm.com/gtc/processorder}ProcessGtcOrderService#{http://logicalprovisioning.atm.com/gtc/processorder}ProcessOrder has thrown exception, unwinding now
        org.apache.cxf.interceptor.Fault: Could not receive Message.
                at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:65)
                at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
                at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530)
                at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:441)
                at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:356)
                at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:314)
                at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
                at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140)
                at com.sun.proxy.$Proxy115.processOrder(Unknown Source)
                at com.logicalprovisioning.common.gtc.shared.RequestListClient.run(RequestListClient.java:423)
        Caused by: java.net.SocketTimeoutException: SocketTimeoutException invoking http://localhost:8080/GTC/services/ProcessGtcOrderSoapHttpPort: Read timed out
                at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
                at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
                at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
                at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
                at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1400)
                at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1384)
                at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
                at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:671)
                at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)
                ... 9 more
        Caused by: java.net.SocketTimeoutException: Read timed out
                at java.net.SocketInputStream.socketRead0(Native Method)
                at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
                at java.net.SocketInputStream.read(SocketInputStream.java:171)
                at java.net.SocketInputStream.read(SocketInputStream.java:141)
                at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
                at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
                at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
                at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)
                at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
                at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
                at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
                at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
                at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream$2.run(URLConnectionHTTPConduit.java:377)
                at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream$2.run(URLConnectionHTTPConduit.java:373)
                at java.security.AccessController.doPrivileged(Native Method)
                at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:373)
                at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.doProcessResponseCode(HTTPConduit.java:1597)
                at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1625)
                at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1570)
                at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1371)
                ... 12 more

Я установил таймауты как:

getBindingProvider().getRequestContext().put(BindingProviderProperties.CONNECT_TIMEOUT, connectTimeout);
getBindingProvider().getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endPointUrl);

Значение connectTimeout равно 3720000. Это примерно 1 час , Подскажите, пожалуйста, что я здесь не так делаю? Или есть еще конфигурации, которые я пропустил.

Заранее спасибо.

1 Ответ

0 голосов
/ 20 января 2020

Единственное настроенное вами время ожидания (при условии, что BindignProviderProperties.CONNECT_TIMEOUT равно "com.sun.xml.internal.ws.connect.timeout") - это время ожидания для завершения начального соединения.

Поскольку вы устанавливаете этот тайм-аут примерно на час, я предполагаю, что вы ожидаете, что обслуживание будет медленным, и это является причиной истечения времени ожидания чтения. Попробуйте настроить время ожидания запроса с помощью «com.sun. xml .internal.ws.request.timeout» на значение, превышающее значение по умолчанию, равное одной минуте.

getBindingProvider().getRequestContext().put("com.sun.xml.internal.ws.request.timeout", requestTimeout);

или установкой таймаута приема в HTTP-канале любым из способов, описанных в http://cxf.apache.org/docs/client-http-transport-including-ssl-support.html#ClientHTTPTransport (включая SSLsupport) -UsingConfiguration

...