JaxWsProxyFactoryBean调用WebService实例
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实例相关推荐
- jQuery Ajax 调用WebService实例详解
JQuery Ajax调用webservice的一些经验记录,在此实例中,解决跨域使用了Core解决方案,在下一篇文章中,会介绍JS 跨域的问题. 实例!.实例!.实例! 跨域解决方案 实例-源码 前 ...
- PHP调用Webservice实例
NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService.它是一个开源软件,是完全采用PHP语言编写 的.通过HTTP收发SOAP消息的一系列PHP类,由NuSph ...
- C#调用WebService实例和开发
1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...
- 【转】C#调用WebService实例和开发
一.基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是 ...
- C#调用WebService实例和开发(转)
http://www.cnblogs.com/peterpc/p/4628441.html 一.基本概念 Web Service也叫XML Web Service WebService是一种可以接收从 ...
- 关于webservice的异步调用简单实例
于webservice的异步调用简单实例 无论在任何情况下,被调用方的代码无论是被异步调用还是同步调用的情况下,被调用方的代码都是一样的, 下面,我们就以异步调用一个webservice 为例作说明. ...
- vue 调用webservice_js跨域调用WebService的简单实例
步骤1. 在web.config中的system.web节点里加入 步骤2.webservice代码 using System; using System.Collections.Generic; u ...
- java使用axis2调用webservice接口实例
说明:我目前的项目环境是struts2+spring+mybatis+oracle,以下代码是java使用axis2调用webservice接口实例. import javax.xml.namespa ...
- java .net webservice_Java客户端调用.NET的WebService实例
项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来. 1,新建.NET WebService.只在原方法上加上一个string类型的参数str [WebMe ...
- php使用webservivce_使用zeng studio 创建的php调用webservice soap简单实例
这两天一直在研究webservice soap是个什么东西,究竟怎么创建webservice,又如何用php调用webservice的借口,经过奋战,终于总算弄懂一点的.然后我做了一个webservi ...
最新文章
- tinyumbrella java_tinyumbrella(小雨伞)
- 学硕计算机考296算高分么,考研总分是多少算高分?考研340分是什么水平?
- 彻底删除 mysql 5.7_Ubuntu16.04彻底删除MySQL5.7
- 仪征技师学院计算机,技师学院2019年下半年江苏省大学英语、大学计算机统考工作圆满结束...
- spring boot 2.x静态资源会被HandlerInterceptor拦截的原因和解决方法
- 斐波那契数列(递归和非递归实现)
- 深入理解操作系统原理之文件系统
- 在Windows服务器安装禅道
- Saliency Detection: A Spectral Residual Approach 阅读笔记
- 抖音自媒体是如何赚钱的,怎么做才能挣到更多的钱?
- 个推里群推php教程,GitHub - lyx2297999137/yii2-igetui: yii2个推
- python制作冰花_小学作文制作冻冰花
- 20考研数一137分考研数学经验分享
- AI 人工智能 干货分享
- (Qt)windows下串口检测-热插拔监测、获取可用串口
- 考研操作系统【1.1 操作系统的基本概念】
- linux egrep命令使用示例
- MMaction2中自定义AVA数据集(在window上实现)
- xbox 屏幕录制配置
- Java应急广播平台接口对接demo(以 应急广播消息格式规范为例)