`

CXF 客户端超时时间设置(非Spring配置方式)

 
阅读更多
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import javax.xml.namespace.QName;
import org.tempuri.DHLServiceSoap;

public String invokeIPEXService(String data, String dataType) {
   //创建WebService客户端代理工厂
   JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); 
   //注册WebService接口
   factory.setServiceClass(DHLServiceSoap.class); 
   //设置WebService地址
   factory.setAddress(url);
   //QName函数的两个参数,第一个是命名空间,第二个是webservice的服务名 
   //第一个参数在.net服务发布时可以找到,也就是targetnamespace, 
   //第二个参数在java的接口实现类中可以找到,也就是serviceName。
   factory.setServiceName(new QName("http://tempuri.org/", "DHLServiceSoap"));
   DHLServiceSoap dhlService = (DHLServiceSoap)factory.create(); 
   // 设置客户端等待服务端响应时间
   Client proxy = ClientProxy.getClient(dhlService ); 
   HTTPConduit conduit = (HTTPConduit) proxy.getConduit(); 
   HTTPClientPolicy policy = new HTTPClientPolicy(); 
   policy.setAllowChunking(false);
   // 连接服务器超时时间 3分钟
   policy.setConnectionTimeout(180*1000);
   // 等待服务器响应超时时间 5分钟
   policy.setReceiveTimeout(300*1000); conduit.setClient(policy);
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics