Web服务客户端关闭连接

时间:2009-11-24 12:28:46

标签: java web-services glassfish cxf

我有一个Glassfish应用服务器托管我的网络服务(jax-rs with apache cxf)。

我有一个Java客户端使用代码来使用此Web服务:

Service service = JAXRSClientFactory.create("http://localhost/service", Service.class);

服务在运行时消耗x次。 x可能会有所不同。

一切都很好 - 代码运行良好并且符合预期。

问题是服务器在达到glassfish的最大连接数后返回http 500(在http服务 - 保持活动状态下)。然后等待继续之前指定的超时秒数。这将重复,直到应用程序完成。

关于如何强制连接关闭因此永远不会达到最大连接限制的任何想法?

非常感谢。

1 个答案:

答案 0 :(得分:0)

道歉这是我的一个误解 - 它不是每次请求都创建一个新连接,而是最大限度地提高单一连接。我将在超时等待或最大连接编码到合适的高数字。以下帮助:

HTTP/1.1 by default, uses persistent connections in which a single connection is used by the client to make multiple requests. The server maintains the connection in the keep-alive state enabling the user agent to make subsequent requests on the same connection rather than create a new connection for every request (HTTP/1.0). The server closes a connection if one of the the following conditions are met.
* The time elapsed between now and the last request has exceeded the value specified for the timeout-in-seconds parameter.
* The number of requests using a connection has exceeded the value specified by the max-connections parameter.