CXF动态调用wsdl接口
1.application.properties文件中配置接口url
2.工具类
- package com.vulnverify.core.utils;
- import java.io.IOException;
- import java.util.Arrays;
- import java.util.Properties;
- import javax.xml.namespace.QName;
- import org.apache.cxf.endpoint.Client;
- import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
- import org.apache.cxf.transport.http.HTTPConduit;
- import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
- import org.apache.log4j.Logger;
- import org.codehaus.jackson.map.ObjectMapper;
- import org.springframework.util.StringUtils;
- import tns.Application;
- import tns.Application_Service;
- /**
- *
- * 使用cxf 调用webservice 接口
- *
- * @author linan
- *
- */
- public class CxfInvokeUtil {
- static Logger logger = Logger.getLogger(CxfInvokeUtil.class);
- private static String wsdlUrl="";
- static{
- String filePath = null;
- try {
- filePath = ApplicationUtils
- .getWebFileAbsoluteClassPath("application.properties");
- } catch (IOException e) {
- e.printStackTrace();
- }
- Properties pro = FileUtil.loadProperties(filePath);
- wsdlUrl = pro.getProperty("cxf.url");
- logger.info("初始化cxf调用webservice地址为:"+wsdlUrl);
- }
- /**
- *
- * 调用webservice 接口
- *
- * @param method
- * 调用方法名
- *
- * @param params
- * 接口传入参数
- *
- * @return
- *
- */
- public static synchronized Object[] invoke(String method,Object params) {
- Object[] objects = null;
- String paramsStr = null;
- try {
- ObjectMapper om = new ObjectMapper();
- JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory
- .newInstance();
- org.apache.cxf.endpoint.Client client = dcf.createClient(wsdlUrl);
- //如果返回的address不是远程服务地址,重新制定地址
- client.getEndpoint().getEndpointInfo().setAddress(wsdlUrl);
- if (StringUtils.isEmpty(method)) {
- logger.error("cxf 调用webservice 执行方法名缺失:method 未传入");
- return objects;
- }
- paramsStr = om.writeValueAsString(params);
- logger.info("cxf 调用webservice method:"+method+",参数:" + paramsStr);
- HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); // 策略
- httpClientPolicy.setConnectionTimeout( 36000 ); //连接超时
- httpClientPolicy.setAllowChunking( false );
- httpClientPolicy.setReceiveTimeout( 10000 ); //接收超时
- HTTPConduit http = (HTTPConduit) client.getConduit();
- http.setClient(httpClientPolicy);
- objects = client.invoke(method, paramsStr);
- } catch (Exception e) {
- e.printStackTrace();
- logger.error("cxf 调用webservice 执行错误:", e);
- }
- return objects;
- }
- public static void main(String[] args) throws Exception {
- Object[] invoke = CxfInvokeUtil.invoke("get_images", "");
- System.out.println(invoke);
- }
- }
CXF动态调用wsdl接口的更多相关文章
- cxf动态调用wsdl的一个冲突以及解决
cxf发布服务,调用服务的博客很多,这里也就简单贴一下代代码. 环境如下:spring+cxf (maven环境) <cxf.version>2.7.11</cxf.version& ...
- 动态调用WebService接口的几种方式
一.什么是WebService? 这里就不再赘述了,想要了解的====>传送门 二.为什么要动态调用WebService接口? 一般在C#开发中调用webService服务中的接口都是通过引用过 ...
- C#动态调用WCF接口,两种方式任你选。
写在前面 接触WCF还是它在最初诞生之处,一个分布式应用的巨作. 从开始接触到现在断断续续,真正使用的项目少之又少,更谈不上深入WCF内部实现机制和原理去研究,最近自己做一个项目时用到了WCF. 从这 ...
- 动态调用wcf接口服务
1.url:http://localhost:8002/名称.svc/basic(.svc结尾) 2.需要引用的命名空间System.ServiceModel 3.调用代码: public class ...
- C#动态调用WCF接口
C#动态调用WCF接口 写在前面 接触WCF还是它在最初诞生之处,一个分布式应用的巨作. 从开始接触到现在断断续续,真正使用的项目少之又少,更谈不上深入WCF内部实现机制和原理去研究,最近自己做一个项 ...
- C# 不添加WEB引用调用WSDL接口
在项目中添加WEB引用耦合度较高,更新时要更新引用,所以我建议不添加WEB引用调用WSDL接口,废话不多说,直接上代码 例如WSDL地址为:http://XXX.XX.XXX.XXX:9115/WsP ...
- php7-soap调用wsdl接口报错:Could not connect to host
由php5.6升级到php7.1以上版本,在用soap调用wsdl接口是报错:Could not connect to host 后来经过排查是centos服务器上装有2个版本的openssl造成的. ...
- java-webService(调用wsdl接口)
使用Axis或XFire实现WebService: Axis2是Apache下的一个重量级WebService框架,准确说它是一个Web Services / SOAP / WSDL 的引擎,是Web ...
- cxf动态调用webservice设置超时,测试线程安全
Java代码 import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import java.util.con ...
随机推荐
- python:窗口化和制作图形
#圆 from tkinter import * canvas = Canvas(width=800, height=600, bg='yellow')#声明窗口属性 canvas.pack(expa ...
- NHibernate-NativeSQL
一.调用方式 1.创建查询 var sql = session.CreateSQLQuery("SELECT * FROM sns_User WHERE UserName LIKE :use ...
- 微信小程序开发注意点和坑集
开发(Tips) 避开频繁setData * 小程序端对于频繁的逻辑层和显示层的交互很不友好,特别是安卓机,与浏览器上js直接操作DOM不同,小程序通过逻辑更新显示层并不完全实时,开发者应避免出现 ...
- Uniform & Attribute & Varying
[Uniform & Attribute & Varying] 顶点着色器的输入变量用关键字“attribute”来限定. 片段着色器的输入变量(它和顶点着色器的输出变量相对应)用关键 ...
- SQLSERVER2012误删数据恢复过程
由于长时间从事企业应用系统开发,前往用户现场升级.调试系统是比较常做的事情,但是就在周一,由于同事的失误在毫无知觉的情况下误删了生产数据库几乎所有的数据.当我发现的那一刻,感觉头发都立起来了,心想这他 ...
- kalman处理realsense数据
代码来自:https://www.cnblogs.com/zjuhjm/archive/2012/12/29/2838472.html import numpy as npimport matplot ...
- 523. Continuous Subarray Sum是否有连续和是某数的几倍
[抄题]: Given a list of non-negative numbers and a target integer k, write a function to check if the ...
- code1169 传纸条
来自:http://www.cnblogs.com/DSChan/p/4862019.html 题目说找来回两条不相交路径,其实也可以等价为从(1,1)到(n,m)的两条不相交路径. 如果是只找一条, ...
- [SoapUI] 如何让某个步骤的Assertion失败之后继续执行后面的步骤
To continue tests executing after failed test step you need disable "Abort on error" optio ...
- Html::a 生成 method=post
<?= Html::a(Yii::t('app', 'delete'), ['delete', 'id' => $model->id], [ 'class' => 'btn b ...