CXF增加连接池大小而不更改http.maxConnections

时间:2012-03-12 09:19:50

标签: java web-services http cxf

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

其中一个参数是Keep-Alive: timeout=60, max=20。 但是,我做了一些研究,看起来CXF使用了JVM HttpURLConnection对象。 From what I see,已经有一些尝试为它提供配置但是现在还没有提交任何内容。

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

我发现这个interresting forum thread正在谈论Daniel Kulp所说的话:

  BTW:有一种方法可以控制连接池,但它是一个   服务器方面的事情。基本上,如果服务器发回一个标题:

     

Keep-Alive: timeout=60, max=5

     

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

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

1 个答案:

答案 0 :(得分:2)

根据我读到的here,keep-alive参数可以是系统属性控制器,也可以直接在HTTP头中控制:

  

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