加载中…
个人资料
iPan
iPan
  • 博客等级:
  • 博客积分:0
  • 博客访问:8,770
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

webservice客户端超时设置

(2022-04-25 16:45:34)
标签:

webservice

timeout

分类: J2EE笔记
1 CXF
JaxWsProxyFactoryBean jwpfb = new JaxWsProxyFactoryBean();
jwpfb.setServiceClass(IWebService.class);
String address = "http://192.168.0.7:8989/WS_Server/Webservice";
jwpfb.setAddress(address);
IWebService wsImpl = (IWebService) jwpfb.create();

// CXF设置超时时间
Client proxy = ClientProxy.getClient(wsImpl);
HTTPConduit conduit = (HTTPConduit) proxy.getConduit();
HTTPClientPolicy policy = new HTTPClientPolicy();
policy.setConnectionTimeout(5000); // 连接超时
policy.setReceiveTimeout(5000);// 读超时
conduit.setClient(policy);

//调用WebService的sayHello方法
String resResult = wsImpl.sayHello("你好");

2 JAX-WS
//创建一个用于产生WebServiceImpl实例的工厂,WebServiceImplService类是wsimport工具生成的
WebServiceImplService factory = new WebServiceImplService();
//通过工厂生成一个WebServiceImpl实例,WebServiceImpl是wsimport工具生成的
WebServiceImpl wsImpl = factory.getWebServiceImplPort();
((BindingProvider)wsImpl).getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 5 * 1000);
((BindingProvider)wsImpl).getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 5 * 1000);
//调用WebService的sayHello方法
String resResult = wsImpl.sayHello("你好");

注意
如果看到类似两个类具有相同的 XML 类型名称这个bug的话
可以定位到这两个类,namespace = "http://namespace.thats.not.the.same.as.the.generated"。
参考

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有