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接口的更多相关文章

  1. cxf动态调用wsdl的一个冲突以及解决

    cxf发布服务,调用服务的博客很多,这里也就简单贴一下代代码. 环境如下:spring+cxf (maven环境) <cxf.version>2.7.11</cxf.version& ...

  2. 动态调用WebService接口的几种方式

    一.什么是WebService? 这里就不再赘述了,想要了解的====>传送门 二.为什么要动态调用WebService接口? 一般在C#开发中调用webService服务中的接口都是通过引用过 ...

  3. C#动态调用WCF接口,两种方式任你选。

    写在前面 接触WCF还是它在最初诞生之处,一个分布式应用的巨作. 从开始接触到现在断断续续,真正使用的项目少之又少,更谈不上深入WCF内部实现机制和原理去研究,最近自己做一个项目时用到了WCF. 从这 ...

  4. 动态调用wcf接口服务

    1.url:http://localhost:8002/名称.svc/basic(.svc结尾) 2.需要引用的命名空间System.ServiceModel 3.调用代码: public class ...

  5. C#动态调用WCF接口

    C#动态调用WCF接口 写在前面 接触WCF还是它在最初诞生之处,一个分布式应用的巨作. 从开始接触到现在断断续续,真正使用的项目少之又少,更谈不上深入WCF内部实现机制和原理去研究,最近自己做一个项 ...

  6. C# 不添加WEB引用调用WSDL接口

    在项目中添加WEB引用耦合度较高,更新时要更新引用,所以我建议不添加WEB引用调用WSDL接口,废话不多说,直接上代码 例如WSDL地址为:http://XXX.XX.XXX.XXX:9115/WsP ...

  7. php7-soap调用wsdl接口报错:Could not connect to host

    由php5.6升级到php7.1以上版本,在用soap调用wsdl接口是报错:Could not connect to host 后来经过排查是centos服务器上装有2个版本的openssl造成的. ...

  8. java-webService(调用wsdl接口)

    使用Axis或XFire实现WebService: Axis2是Apache下的一个重量级WebService框架,准确说它是一个Web Services / SOAP / WSDL 的引擎,是Web ...

  9. cxf动态调用webservice设置超时,测试线程安全

    Java代码 import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import java.util.con ...

随机推荐

  1. 【309】◀▶ Windows 相关功能实现

    目录: 共享文件夹失败的解决方法 导 栅 添 1. 共享文件夹失败的解决方法 参考:解决“你没有权限访问,请与网络管理员联系” 参考:WIN7局域网文件共享设置方法 2. 导 在 3. 栅 栅 4. ...

  2. Echarts在java中使用

    index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  3. 新做的系统,第一次拉maven项目时,鼠标左键+ctrl键不能进方法

    对项目选择属性,跳转至:选择以下步骤

  4. 为什么3D模型的网格由很多三角形来组成

    因为二点确定一条线,三点确定一个面 网格就是由很多面组成的,四个点也能组成面 但是三个点就足够了

  5. Java-Excel文件读取

    import java.io.File; import java.io.IOException; import org.testng.annotations.DataProvider; import ...

  6. CecOS Virtualization

    CecOS CecOS 是 OPENFANS 为中小型企业提供企业开源云计算解决方案的基础框架:CecOSvt 是一款运行在社区企业云操作系统(CecOS)上的虚拟化开放式解决方案. 也可用演示模式. ...

  7. Mongodb基于oplog恢复至任意时间

    背景: 最近后端基于mongo的项目越来越多,MySQL基于冷备份+binlog可以恢复至任意时间点,那么mongo是否有同样的功能呢?经过调研发现可以通过dump+oplog可以实现粒度更细致的恢复 ...

  8. Openssl rand命令

    一.简介 rand命令用来产生伪随机字节,随机数字产生器需要一个seed,在没有/dev/srandom系统下的解决方法是自己做一个~/.rnd文件 二.语法 openssl rand [-out f ...

  9. scala开发环境

    1. Intellij IDEA Scala开发环境搭建 Intellij IDEA 15.0.3 默认配置里面没有Scala插件,需要手动安装,在Intellij IDEA 15.0.3 第一次运行 ...

  10. 洛谷P1186 玛丽卡 spfa+删边

    洛谷P1186 玛丽卡http://blog.csdn.net/huihao123456/article/details/73414139题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. ...