使用cxf调用webservice客户端需要如下建单几步
1:创建一个Java工程
2:引入需要的jar包
3:写个测试类测试
1:创建java工程
在eclipc新建一个Java项目,如下图:
就是普通的Java工程,jdk可以是1.6/1.7/1.8----测试了没有问题
2:引入需要的jar包
引入jar是个问题,不同的版本需要的jar包不一样,这里使用的是2.7.12版本
这些jar去哪里找是个问题:去官网下载,可以下载不同的版本,新的/历史 版本都可以下载,下载后就能得到相应的jar
打开这个路径学习怎么下载需要的版本的jar:https://www.cnblogs.com/xueershewang/p/10484773.html
jar下载下来 按着第一步中图中的引入需要的jar , fastjson-1.1.32.jar 是阿里的一个json工具类,这个不用,cxf lib文件夹里也没有
3:书写测试类
=============类的内容开始===========
package testcxf;
import java.util.HashMap;
import java.util.Map;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import com.alibaba.fastjson.JSON;
public class test {
public static void main(String[] args) {
//发布的webservice的wsdl路径
String url ="http://127.0.0.1:8080/testWebService?wsdl";
//创建动态代理工厂
JaxWsDynamicClientFactory jwdcf = JaxWsDynamicClientFactory.newInstance();
//根据wsdl路径创建实例--(参数url是 webservice发布的 wsdl 地址)
Client client = jwdcf.createClient(url);
Map paremap = new HashMap();
paremap.put("test", "test");
String json=JSON.toJSONString(paremap);
//传参调用打印返回结果
try {
//入参是 webservice的方法名,和需要的参数,参数格式这里是个字符串,
//传其他的格式的参数---需要百度下
Object[] retObjects = client.invoke("test", json);
System.out.println(retObjects[0]);
} catch (Exception e) {
e.printStackTrace();
}
}
}
=======================类的内容结束======================
写完这个类,直接启动main方法就可以了
需要知道的是webservice的发布的wsdl地址和方法名,以及方法需要的入参
https://www.cnblogs.com/h-c-g/articles/10882935.html ---其他人写法