WebServiceUtils 工具类

package xxxx;
import java.util.ResourceBundle;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.springframework.stereotype.Service;
@Service
public class WebServiceUtils {public static final int CXF_CLIENT_CONNECT_TIMEOUT = 30 * 1000;public static final int CXF_CLIENT_RECEIVE_TIMEOUT = 30 * 1000;/*** * @param clazz* @param paraName* @param timeout* @return*/public <T> T getWebService(Class<T> clazz, String paraName, Integer... timeout) {ResourceBundle dBResources = ResourceBundle.getBundle("application-config");String url = dBResources.getString(paraName);if (timeout == null || timeout.length == 0) {return getWebServiceByUrl(clazz, url);} else if (timeout.length == 1) {return getWebServiceByUrl(clazz, url, timeout[0], timeout[0]);} else {return getWebServiceByUrl(clazz, url, timeout[0], timeout[1]);}}public <T> T getWebServiceByUrl(Class<T> clazz, String url) {return getWebServiceByUrl(clazz, url, CXF_CLIENT_CONNECT_TIMEOUT, CXF_CLIENT_RECEIVE_TIMEOUT);}private <T> T getWebServiceByUrl(Class<T> clazz, String url, Integer connetTimeout, Integer receiveTimeout) {// 用于创建JAX-WS代理的工厂,此类提供对用于设置代理的内部属性的访问。使用它可以提供比标准JAX-WS API更多的控制。JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();factory.setServiceClass(clazz);factory.setAddress(url);@SuppressWarnings("unchecked")// 创建可用于进行远程调用的代理对象。T webService = (T) factory.create();// 设置接口 连接超时和请求超时// 通过代理对象获取本地客户端Client proxy = ClientProxy.getClient(webService);// 通过本地客户端设置 网络策略配置HTTPConduit conduit = (HTTPConduit) proxy.getConduit();// 用于配置客户端HTTP端口的属性HTTPClientPolicy policy = new HTTPClientPolicy();// 超时控制 单位 : 毫秒policy.setConnectionTimeout(connetTimeout);policy.setReceiveTimeout(receiveTimeout);conduit.setClient(policy);return webService;}}

实际调用示例

String jsonoInfo = null;
try {jsonInfo = webServiceUtil.getWebService(GjxxWebService.class,     "webService_url").gjglAccountqueryPersonFuzzyWs(zjhm, idType, pageNo, pageSize);} catch (WebServiceException se) {xxxxxxx....}

各参数名称等分析:

名称 描述
GjxxWebService 通过wsdl 生成的接口
webService_url 接口的url地址
gjglAccountqueryPersonFuzzyWs 接口中的某个方法
zjhm, idType, pageNo, pageSize 调用该接口所需要的参数
jsonInfo 调用该接口的返回值,据接口具体而定

JaxWsProxyFactoryBean调用WebService实例相关推荐

  1. jQuery Ajax 调用WebService实例详解

    JQuery Ajax调用webservice的一些经验记录,在此实例中,解决跨域使用了Core解决方案,在下一篇文章中,会介绍JS 跨域的问题. 实例!.实例!.实例! 跨域解决方案 实例-源码 前 ...

  2. PHP调用Webservice实例

    NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService.它是一个开源软件,是完全采用PHP语言编写 的.通过HTTP收发SOAP消息的一系列PHP类,由NuSph ...

  3. C#调用WebService实例和开发

    1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...

  4. 【转】C#调用WebService实例和开发

    一.基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是 ...

  5. C#调用WebService实例和开发(转)

    http://www.cnblogs.com/peterpc/p/4628441.html 一.基本概念 Web Service也叫XML Web Service WebService是一种可以接收从 ...

  6. 关于webservice的异步调用简单实例

    于webservice的异步调用简单实例 无论在任何情况下,被调用方的代码无论是被异步调用还是同步调用的情况下,被调用方的代码都是一样的, 下面,我们就以异步调用一个webservice 为例作说明. ...

  7. vue 调用webservice_js跨域调用WebService的简单实例

    步骤1. 在web.config中的system.web节点里加入 步骤2.webservice代码 using System; using System.Collections.Generic; u ...

  8. java使用axis2调用webservice接口实例

    说明:我目前的项目环境是struts2+spring+mybatis+oracle,以下代码是java使用axis2调用webservice接口实例. import javax.xml.namespa ...

  9. java .net webservice_Java客户端调用.NET的WebService实例

    项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来. 1,新建.NET WebService.只在原方法上加上一个string类型的参数str [WebMe ...

  10. php使用webservivce_使用zeng studio 创建的php调用webservice soap简单实例

    这两天一直在研究webservice soap是个什么东西,究竟怎么创建webservice,又如何用php调用webservice的借口,经过奋战,终于总算弄懂一点的.然后我做了一个webservi ...

最新文章

  1. tinyumbrella java_tinyumbrella(小雨伞)
  2. 学硕计算机考296算高分么,考研总分是多少算高分?考研340分是什么水平?
  3. 彻底删除 mysql 5.7_Ubuntu16.04彻底删除MySQL5.7
  4. 仪征技师学院计算机,技师学院2019年下半年江苏省大学英语、大学计算机统考工作圆满结束...
  5. spring boot 2.x静态资源会被HandlerInterceptor拦截的原因和解决方法
  6. 斐波那契数列(递归和非递归实现)
  7. 深入理解操作系统原理之文件系统
  8. 在Windows服务器安装禅道
  9. Saliency Detection: A Spectral Residual Approach 阅读笔记
  10. 抖音自媒体是如何赚钱的,怎么做才能挣到更多的钱?
  11. 个推里群推php教程,GitHub - lyx2297999137/yii2-igetui: yii2个推
  12. python制作冰花_小学作文制作冻冰花
  13. 20考研数一137分考研数学经验分享
  14. AI 人工智能 干货分享
  15. (Qt)windows下串口检测-热插拔监测、获取可用串口
  16. 考研操作系统【1.1 操作系统的基本概念】
  17. linux egrep命令使用示例
  18. MMaction2中自定义AVA数据集(在window上实现)
  19. xbox 屏幕录制配置
  20. Java应急广播平台接口对接demo(以 应急广播消息格式规范为例)

热门文章

  1. 怎么学计算机制作ppt,电脑ppt怎么做
  2. 手机文档转html,手机金山文档怎么转换成Word文档电脑手机?
  3. 支付宝APP支付IOS手机端java后台版
  4. Win10 PowerToys官方免费效率小工具集
  5. 成为嵌入式高手,少不了这100多个软硬件开源项目
  6. 《现代控制系统》第四章——反馈控制系统特性 4.3 控制系统对参数变化的敏感程度
  7. 随机过程第2讲——马尔可夫过程的应用
  8. 决策支持系统4个基本组成部分
  9. 听说某琳系统停止更新了,其他的主机管理系统哪个好?
  10. 计算机网络技术毕业生实习报告_计算机网络专业毕业实习报告