我试图使用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)
使用curl时请求需要多长时间?我相信CXF的默认超时时间为60秒,因此您可能需要延长它。如果您需要协助配置超时,请发布用于创建CXF客户端的代码/配置。 – Patrick 2014-10-17 14:20:35
使用curl只需要一两秒钟,我就可以得到回应。我使用了90秒的超时时间,但我仍然遇到这个问题。 – 2014-10-21 19:35:17