我尝试使用支持网关的WebService,它使用HTTPS作为协议,并使用apache cxf客户端。
问题是我的所有请求都超时了,但是当我使用curl到同一个WebService时,我得到的响应没有任何问题。
当我登录支付网关的管理区域时,我的所有尝试都没有任何错误,所以我可以说问题是在某处作出回应。
堆栈跟踪在下方。
org.apache.cxf.interceptor.Fault:无法发送消息。 at 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) 在org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:295) 在org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:75) 在org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) at com.sun.proxy。$ Proxy1074.authorize(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at 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) 在java.net.SocketInputStream.socketRead0(SocketInputStream.java) 在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) at 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) 在java.io.BufferedInputStream.read(BufferedInputStream.java:317) 在weblogic.net.http.MessageHeader.isHTTP(MessageHeader.java:224) 在weblogic.net.http.MessageHeader.parseHeader(MessageHeader.java:148) 在weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:468) 在weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:401) 在weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37) 在weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:1005) at 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.close(HTTPConduit.java:1375)
答案 0 :(得分:0)
您可能希望从Apache CXF src更改receiveTimeout设置,并替换服务器中现有的cxf-rt-transports-http-version.jar。
中的说明答案 1 :(得分:0)
检查您是否落后于Web代理,这就是为什么它在curl中工作但不是通过Apache CXF工作。