CXF 在不改变 http.maxConnections 的情况下增加连接池大小

Posted

技术标签:

【中文标题】CXF 在不改变 http.maxConnections 的情况下增加连接池大小【英文标题】:CXF increase connection pool size without changing http.maxConnections 【发布时间】:2012-03-28 16:39:26 【问题描述】:

最近有人要求我将 CXF 配置为与我们的旧 XFire 服务相同的参数。

其中一个参数是Keep-Alive: timeout=60, max=20。 但是,我做了一些研究,似乎 CXF 在后台使用了 JVM HttpURLConnection 对象。 From what I see,已尝试为其提供配置,但目前尚未提交任何内容。

我不希望更改 http.maxConnections 参数,因为它会影响所有服务器,而不仅仅是 CXF Web 服务。

我发现这个 interresting forum thread 在 Daniel Kulp 所说的地方谈论它:

顺便说一句:有一种方法可以控制连接池,但它是 服务器端的东西。基本上,如果服务器发回一个标头:

Keep-Alive: timeout=60, max=5

那么 Java 客户端将尊重这些值。现在在CXF, 您可能需要编写一个拦截器来设置这些值。 我刚刚提交了将 http 配置扩展到 在配置文件中包含一个设置来控制它。

我可以编写一个拦截器来修改标题来做到这一点。但是我的问题是:服务器将如何应对这种变化?如果服务器期望最多 5 个连接并且客户端执行更多,这不是问题吗?

【问题讨论】:

【参考方案1】:

根据我读到的here,keep-alive 参数可以通过系统属性或直接在 HTTP 标头中进行控制:

对 HTTP keep-Alive 的支持是透明的。然而,它可以 由系统属性控制 http.keepAlive,并且 http.maxConnections,以及由HTTP/1.1指定的请求和 响应标头

【讨论】:

以上是关于CXF 在不改变 http.maxConnections 的情况下增加连接池大小的主要内容,如果未能解决你的问题,请参考以下文章

通过 CXF 在 SSL 上配置 JAX-WS

Apache Cxf Wsdl2java创建Web服务客户端编码错误

C# - 如何在不改变 DateTime 格式的情况下改变文化

在不改变系统音量的情况下改变 MPMusicPlayerController 的音量

如何在不改变iphone中精灵原始值的情况下改变精灵的高度?

如何在不改变背景内容的情况下改变背景的不透明度?