CXF调用webservice客户端

使用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    ---其他人写法

原文地址:https://www.cnblogs.com/xueershewang/p/10494651.html