2015-09-18 46 views
0

我正在開發使用MF 6.3混合應用程序面對java.net.SocketTimeoutException。我正面臨java套接字超時問題,同時我通過 適配器請求數據。這不一致。它發生3-4次/ 10次。我也有 看到在github上 https://github.com/google/google-http-java-client/issues/146但 沒有決議中提到了同樣的問題。使用mobilefirst 6.3混合應用

我使用60秒的超時適配器,並在10秒內發生此異常。

固定用於日誌的logcat的。

09-18 15:07:29.561:I /的System.out(10667):池-6-線程2調用 detatch()

09-18 15:07:39.146:我/System.out(10667):池-6-線程5調用 detatch()

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667): WLNativeXHRPlugin $ NativeXHRPostListener.onException在 WLNativeXHRPlugin.java:154 :: onException的

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667): java.net.SocketTimeoutException:瀏覽超時

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 com.android.org.conscrypt.NativeCrypto.SSL_read(本機方法)

09-18 15:07:39.166: E/COM .worklight.androidgap.plugin.WLNativeXHRPlugin(10667):at com.android.org.conscrypt.OpenSSLSocketImpl $ SSLInputStream.read(OpenSSLSocketImpl.java:728)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java :82)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser。的java:174)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java :180)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):at org.apache.http.impl.conn.DefaultClientConnection。receiveResponseHeader(DefaultClientConnection.java:235)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 org.apache.http.impl.conn.AbstractClientConnAdapter .receiveResponseHeader(AbstractClientConnAdapter.java:259)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 org.apache.http.protocol.HttpRequestExecutor。 doReceiveResponse(HttpRequestExecutor.java:279)

09-18 15:07:39.166: E/com.worklight.androidgap.pl ugin.WLNativeXHRPlugin(10667):在 org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin .WLNativeXHRPlugin(10667):在 org.apache.http.impl.client.DefaultRequestDirector.executeOriginal(DefaultRequestDirector.java:1351)

09-18 15:07:39.166: E/com.worklight.androidgap。 plugin.WLNativeXHRPlugin(10667):at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:700)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:691)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:514)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 com.worklight.wlclient.WLHybridRequestSender.run(WLHybridRequestSender.java:63)

09-18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

09 -18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:587)

09- 18 15:07:39.166: E/com.worklight.androidgap.plugin.WLNativeXHRPlugin(10667):at java.lang.Thread.run(Thread.java:818)

09-18 15:07:39.176:E/NONE(10667): [/ apps/services/api/SCBBizNet/android/query]主機沒有響應。 嘗試通過Android模擬器瀏覽器手動訪問URL,以驗證連接性爲 。

+0

適配器請求在哪裏? –

+0

我正在通過以json格式返回結果的適配器調用java web服務。 – ajaykumar

+0

使用Wireshark從成功和失敗嘗試中收集網絡流量日誌。讓我們看看網絡告訴我們什麼。 –

回答

1

已解決! 我們正在調用WL.Logger.send()發送$.getJson內部的日誌,該日誌載入配置json文件,我們將日誌發送到服務器。在完成這一步之後,我們將從$.getJson回調中調出並調用適配器來加載包含數據的頁面。整個事件發生在點擊按鈕上。如果我們刪除$.getJson並致電WL.Logger.send()它不會給出任何套接字超時異常。

但是,這個問題似乎很不尋常,因爲在$.getJson內部調用WL.Logger.send()後,隨後的適配器調用失敗了10次,超出了適配器層的套接字超時異常的5-6倍。這種異常在Android中更頻繁,在iOS中更少。我們正在進一步調查$.getJson造成的問題。將發佈更新。

+0

有關這方面的消息嗎? –

+0

也得到了它的解決方案......我有一個上傳數據到MFP服務器的序列,當這個解決了它的承諾,而Angular JS應用程序改變了頁面並且向MFP發出了更多的讀取請求時,啓動另一個上傳(圖像)。不知何故,這可能導致客戶端陷入某種僵局,導致超時。我的解決方案是不調用函數直接從解析函數上傳圖像,但使用內部事件觸發上傳。哪個工作完美無瑕。 –

相關問題