2014-10-16 40 views
0

我试图使用HTTPS作为协议的支付网关的WebService,我使用的是Apache cxf客户端。HTTPS CXF超时

问题我得到所有我的请求超时,但是当我使用curl到相同的WebService我得到没有任何问题的答复。

当我登录到支付网关的管理区域时,我所有的尝试都没有任何错误,所以我可以说这个问题是在某个地方的回应。

堆栈跟踪在下面。

org.apache.cxf.interceptor.Fault:无法发送消息。 在org.apache.cxf.interceptor.MessageSenderInterceptor $ MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) 在org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 在org.apache.cxf。 endpoint.ClientImpl.doInvoke(ClientImpl.java:510) 在org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:440) 在org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java: 343) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:295) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:75) at org.apache.cxf。 jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) at com.sun.proxy。$ Proxy1074.authorize(Unknown Source) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang中.reflect.Method.invoke(Method.java:597)

造成的:java.net.SocketTimeoutException:阅读jrockit.net.SocketNativeIO.readBytesPinned(本机方法) 超时 在jrockit.net.SocketNativeIO。 socketRead(SocketNativeIO.java:32) at java.net.SocketInputStream.socketRead0(SocketInputStream.java) at java.net.SocketInputStream.read(SocketInputStream.java:129) at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:422) at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:460) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:863) 在com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:820) 在COM。 sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) 在java.io.BufferedInputStream.fill(BufferedInputStream.java:218) 在java.io.BufferedInputStream.read1(BufferedInputStream.java: 258) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) at weblogic.net.http.MessageHeader.isHTTP(MessageHeader.java:224) at weblogic.net.http.MessageHeader.parseHead er(MessageHeader.java:148) at weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:468) at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:401) at weblogic.net。 http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37) 在weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:1005) 在org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.handleResponseInternal(HTTPConduit。 java:1509) at org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.handleResponse(HTTPConduit.java:1467) at org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream。关闭(HTTPConduit.java:1375)

+0

使用curl时请求需要多长时间?我相信CXF的默认超时时间为60秒,因此您可能需要延长它。如果您需要协助配置超时,请发布用于创建CXF客户端的代码/配置。 – Patrick 2014-10-17 14:20:35

+0

使用curl只需要一两秒钟,我就可以得到回应。我使用了90秒的超时时间,但我仍然遇到这个问题。 – 2014-10-21 19:35:17

回答

0

您可能想要更改Apache CXF src的receiveTimeout设置,并替换服务器中现有的cxf-rt-transports-http-version.jar。

见说明书从Wildfly 8.2/undertow read time out

0

检查,如果你是落后的Web代理,这就是为什么它在卷曲工作,但不是通过通过Apache CXF。