我正在設(shè)置一個(gè)新的 GlassFish Server 4.1.1,其中部署了一個(gè) Java Web 服務(wù)。Web 服務(wù)有一個(gè) Web 方法,它接收 JSON 作為輸入?yún)?shù),結(jié)果它也返回一個(gè) JSON。要將 Java 對(duì)象序列化/反序列化到 JSON,我使用的是 Gson 庫。Web 方法正在調(diào)用另一個(gè) Web 服務(wù),并且一次運(yùn)行大約需要 2-3 分鐘。例如,我在循環(huán)中調(diào)用此 Web 服務(wù) 6-10 次,因此 Web 方法等待大約 16-30 分鐘以返回一個(gè)值。問題是超時(shí),但我不知道在哪里以及如何為我的問題設(shè)置它。我嘗試從 Visual Studio C# 項(xiàng)目中調(diào)用此 Java Web 服務(wù),我在其中添加了一個(gè) Web 引用,我在其中定義了 Web 服務(wù)的 Web 引用 URL。我還設(shè)置了 XML Web 服務(wù)客戶端等待對(duì)同步 XML Web 服務(wù)請(qǐng)求的回復(fù)到達(dá)的時(shí)間。我將其設(shè)置為 10 小時(shí),如下所示。static string CallEARSjDE(string json){ EARSWebReference.EARSWebService EARSWS = new EARSWebReference.EARSWebService(); EARSWS.Timeout = 36000000; // 10 hours return EARSWS.EARSjDE(json);}我還為在 Java Web 方法中發(fā)出的 Web 服務(wù)請(qǐng)求設(shè)置了超時(shí)。我設(shè)置為 1 小時(shí)。Gson gson = new Gson();RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(1 * 3600000).build(); // timeout set to 1 hourHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();HttpPost post = new HttpPost(this.ServiceURL);StringEntity postingString = new StringEntity(gson.toJson(problemLCSRequest));post.setEntity(postingString);post.setHeader("Content-type", "application/json");HttpResponse response = httpClient.execute(post);HttpEntity entity = response.getEntity();String responseString = EntityUtils.toString(entity, "UTF-8");ProblemLCSResponse responseJson = gson.fromJson(responseString, ProblemLCSResponse.class);除了這兩個(gè)超時(shí),我還在 GlassFish 管理控制臺(tái)中設(shè)置了一個(gè)超時(shí)。我在 Configurations → server-config → Web Container 部分完成了,我將會(huì)話超時(shí)設(shè)置為 36.000 秒(10 小時(shí))。例如,當(dāng)我在 Web 方法中調(diào)用 Web 服務(wù) 6 次時(shí),我得到了所需的響應(yīng)。但是當(dāng)我調(diào)用 Web 服務(wù)超過 6 次時(shí),它會(huì)拋出如下所示的異常。我認(rèn)為這個(gè)異常的原因是超時(shí),但我不知道是哪一個(gè)導(dǎo)致它,我在哪里可以改變它。
1 回答

萬千封印
TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
最后,我找到了正確的超時(shí)設(shè)置。我必須進(jìn)入管理面板,在里面Configurations → server-config → Network Config
我必須設(shè)置 http-listener-1 的HTTP 請(qǐng)求超時(shí)。
添加回答
舉報(bào)
0/150
提交
取消