我最近被要求将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个连接并且客户端执行更多操作,那么这不是问题吗?
答案 0 :(得分:2)
根据我读到的here,keep-alive参数可以是系统属性控制器,也可以直接在HTTP头中控制:
对HTTP keep-Alive的支持是透明的。但是,它可以 由系统属性控制 http.keepAlive,和 http.maxConnections,以及由HTTP / 1.1指定请求和 响应标题。