【问题标题】:Prevent JAXRSClientFactory to reuse connections防止 JAXRSClientFactory 重用连接
【发布时间】:2013-01-26 11:26:55
【问题描述】:
我正在使用 JAXRSClientFactory 来实例化 REST 客户端以进行集成测试。
在两次测试之间,我重新启动了我的 Jetty 服务器,并将新的 REST 客户端实例化到相同的 URL。但是,CXF 似乎在使用某种连接池或连接保持活动系统,因为我在服务器重启后的第一次测试中遇到了连接错误。
我没有在文档中找到任何说明使用连接池的内容:是这样吗?如果是这样,我该如何防止它,或者在测试结束时刷新给定客户端的连接?
【问题讨论】:
标签:
java
rest
cxf
keep-alive
【解决方案1】:
该死的,
我终于找到了方法。
这里是代码:
import org.apache.cxf.jaxrs.client.ClientConfiguration;
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.transport.http.HTTPConduit;
import static org.apache.cxf.transports.http.configuration.ConnectionType.CLOSE;
...
MyService proxy = JAXRSClientFactory.create("url", MyService.class);
// Disable keep-alive connection
ClientConfiguration config = WebClient.getConfig(proxy);
HTTPConduit conduit = config.getHttpConduit();
conduit.getClient().setConnection(CLOSE);