替XFire生成的WebService客户端设置连接超时参数

为XFire生成的WebService客户端设置连接超时参数
由于要从另一个系统的WebService读取大量的数据,因此要修改连接WebService的超时参数。WebService的客户端代码是通过XFire的Ant任务生成的。Google一下,没找到答案,但最后还是在XFire官方找到了答案。

假设生成的客户端代码中的服务接口和Client的类分别为TestService和TestServiceClient,修改连接超时参数代码如下:

//创建Service对象
TestServiceClient testClient = new TestServiceClient();

TestService testService = testClient.getTestServicePort();

//设置连接参数
HttpClientParams params = new HttpClientParams();

params.setParameter(HttpClientParams.USE_EXPECT_CONTINUE, Boolean.FALSE);

params.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT, setting.getTimeout() * 1000);//单位是毫秒

Client client = Client.getInstance(testService);

client.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS, params);

XFire是基于Apache的HttpClient,所以实际上连接超时的参数是就是设置在HttpClient上的