利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 SpringBoot实现登陆验证调用

6 篇文章 0 订阅
1 篇文章 0 订阅

项目中开发要调用另个系统的webservice服务

可以利用wsdl2java工具结合SoapUI工具生成webservice的客户端代码  自己写起来太麻烦了

需要的工具

  1. apache-cxf-3.3.7
  2. SoapUI 5.4.0-EB
  3. webservice的wsdl文件(url打开右键另存为以 .wsdl 结尾即可)

首先安装SoapUI 打开 file-new SOAP project

红框选择需要生成代码的wsdl文件即可

 

右键项目

 

配置cxf

 

然后点击 Generate 按钮即可生成代码

 

 

即成功生成了文件

 

下面是使用cxf调用的代码

需要引用cxf的jar包:

Gradle:

compile group: 'org.apache.cxf', name: 'cxf-spring-boot-starter-jaxws', version: '3.3.4'

Maven:

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
    <version>3.3.4</version>
</dependency>

 

调用的代码

 
    //clazz参数传入生成代码中的接口即可得到调用的service  
    /**
     * 获取webservice的服务
     * @param clazz
     * @param url   webservice的url地址
     * @param userName    需要的用户名
     * @param password    密码
     * @param connTimeout
     * @param recTimeout
     * @param <T>
     * @return
     */
    public <T> T getSapWebService(Class<T> clazz,String url,String userName,String password,Long connTimeout,Long recTimeout) {
        // 用于创建JAX-WS代理的工厂,此类提供对用于设置代理的内部属性的访问。使用它可以提供比标准JAX-WS API更多的控制。
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        //地址
        factory.setAddress(url);
        //用户名密码验证
        factory.setUsername(userName);
        factory.setPassword(password);

        factory.setServiceClass(clazz);

        // 创建可用于进行远程调用的代理对象。
        T service = (T) factory.create();
        // 通过代理对象获取本地客户端
        Client proxy = ClientProxy.getClient(service);
        // 通过本地客户端设置 网络策略配置
        HTTPConduit conduit = (HTTPConduit) proxy.getConduit();
        // 用于配置客户端HTTP端口的属性
        HTTPClientPolicy policy = new HTTPClientPolicy();
        // 超时控制 单位 : 毫秒
        if (StringsExpand.isNotEmpty(connTimeout)&&connTimeout>0){
            policy.setConnectionTimeout(connTimeout); //连接超时时间
        }
        if (StringsExpand.isNotEmpty(recTimeout)&&recTimeout>0){
            policy.setReceiveTimeout(recTimeout);//请求超时时间.
        }
        conduit.setClient(policy);

        return service;

    }



 

 

 

下面第二种方式生成客户端调用代码   

 

1、JDK环境
2、下载apache-cxf发布包,目前最新版本为3.1.7,解压发布包,设置CXF_HOME,并添加%CXF_HOME %/bin到path环境变量。或者直接apache-cxf的目录添加到path变量
3、CMD命令行输入wsdl2java -help,有正常提示说明环境已经正确配置。

 

生成客户端代码
cmd执行如下命令即可生成webservice客户端调用需要代码  调用方法同上

CMD界面执行如下命令即可:

wsdl2java -encoding utf-8 -d D:\workspace\demo C:\Users\user\Desktop\webservice\wsdl2\aaa.wsdl

D:\workspace\demo为输出目录

C:\Users\user\Desktop\webservice\wsdl2\aaa.wsdl为wsdl文件

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值