2014-10-16 78 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。