0
我正在將我的應用程序從Play 2.1.2遷移到Play 2.3.3(使用Play for Java)。我注意到網絡服務很慢。這些是SOAP服務。基本服務當時正在播放2.1.2版爲35ms,現在正在240MS在播放2.3.3Play Framework 2.3.3:WS庫很慢
初始代碼在播放2.1.2
WSRequestHolder requestHolder = WS.url(url);
requestHolder.setHeader(CONTENT_TYPE, CONTENT_TYPE_XML_UTF_8_SAVE);
F.Promise<WS.Response> responsePromise = requestHolder.post(new ByteArrayInputStream(request.getBytes("UTF-8")));
response = responsePromise.get(50000L);
return response;
新代碼播放2.3.3
WSRequestHolder requestHolder = WS.url(url);
requestHolder.setHeader(CONTENT_TYPE, CONTENT_TYPE_XML_UTF_8_SAVE);
F.Promise<WSResponse> responsePromise = requestHolder.post(new ByteArrayInputStream(request.getBytes("UTF-8")));
response = responsePromise.get(50000L);
Document responseDoc = null;
if(response.getStatus() == 200) {
responseDoc = response.asXml();
}else{
Logger.error("service call failed. Status: " + response.getStatus());
}
return responseDoc;
所有設置都是默認設置。我錯過了一個設置?新的Play需要與線程池相關的任何設置嗎?我嘗試了幾種組合,但沒有看到任何改進。
任何幫助表示讚賞。
感謝
Jaswinder
Will-我將代碼更改爲使用map,但沒有提高性能。然後,我進一步將InputStream的主體的帖子更改爲String,並做到了這一點。 – 2014-09-15 22:38:59