Weservice客户端中设置超时时间

一、前言
在IDEA中创建完webservice后,就可以发起请求了,但是没有设置设置超时时间,网上查了很多资料,关于这方面的比较少,先总结下来,代码经过了生产检验。
二、代码
1)依赖

<dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-transports-http</artifactId>
   <version>3.3.3</version>
</dependency>
<dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-frontend-jaxws</artifactId>
   <version>3.3.3</version>
</dependency>
		// webServiceUrl为请求的webservice地址
		CallServiceFactory.setURL(webServiceUrl);
        CallServiceFactory factory = new CallServiceFactory();
        CallService callService = factory.getCallServicePort();
        
        // 连接参数设定
        Client proxy = ClientProxy.getClient(callService);
        HTTPConduit conduit = (HTTPConduit) proxy.getConduit();
        HTTPClientPolicy policy = new HTTPClientPolicy();
       
        // 连接超时时间
        policy.setConnectionTimeout(webServiceConfig.getConnectionTimeout());
        // 请求超时时间,设置太短会出现核心还没返回就请求异常
        policy.setReceiveTimeout(webServiceConfig.getReceiveTimeout());
        conduit.setClient(policy);
        // 获取返回结果
         callResult = callService.invoke(args1, args2, args3, args4, args5);

连接超时时间和请求超时时间我都是配置在了配置文件中,自行设定。
如何在IDEA中生成webservice客户端,可以参看我的博客,地址:
在IDEA中生成webservice客户端

发布了65 篇原创文章 · 获赞 48 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/chen15369337607/article/details/103304778