使用cxf客户端生成java代码并调用

  1. 下载CXF客户端

    1. 进入Apache CXF的官网(http://cxf.apache.org/),进入下载页面
    2. 下载的首页会列出几个版本,如果要下载以前的版本,就滑到下载页面的底部----Previous releases标题下,这里官网提供了两个链接,小编英文比较菜,谷歌翻译过来是费孵化器发布以及孵化器发布,不清楚区别在哪里,但是我这里选择的是非孵化器下载链接(http://archive.apache.org/dist/cxf/
    3. 进入链接后,会有对应的很多版本,找到你自己需要的版本,点进去下载即可。小编这里由于项目需要,下载的是3.0.2的版本,这里不要下载源码的压缩包哦
  2. 安装CXF客户端

    1. 安装CXF客户端很简单的,只需要解压后配置下环境变量即可,解压目录D:\develop\apache-cxf-3.0.2;
    2. CXF_HOME=D:\develop\apache-cxf-3.0.2
    3. PATH增加%CXF_HOME%\bin;(如果PATH的环境变量值不是以;结尾的话,就加上一个分号再追加%CXF_HOME%\bin;)
    4. 环境变量配置完成后,验证下是否安装成功。打开cmd窗口,输入命令wsdl2java -v
    5. 能够正常的现实cxf的版本,就说明安装成功。
  3. 生成客户端代码

    1. 生成客户端的代码主要是命令wsdl2java,但是他的参数有很多,详细参数说明请参考度娘,我这里简单介绍几个常用的参数。
    2. 指令:
      wsdl2java -p com.monk.test.weather -encoding utf-8 -d E:\\client_code -client http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

       

    3. 参数说明:
      1. -p -p com.monk.test.weather   指定生成客户端代码的包路径
      2. -encoding utf-8  指定生成客户端代码的编码格式
      3. -d E:\\client_code  指定生成客户端代码的路径
      4. -client  生成客户端代码
    4. 使用3.0步骤生成天气预报的客户端代码的话,会报错,截图如下,原因是wsdl2java是通过JAXB解析wsdl文件的,JAXB目前还不支持ref 这种元素的解,参考帖子https://blog.csdn.net/binbinxyz/article/details/8906717
    5. 解决办法,可以在浏览器输入http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,然后将内容另存为WeatherWebService.wsdl,删掉wsdl中的<s:elementref="s:schema" />,再执行命令即可
      wsdl2java -p com.monk.test.weather -encoding utf-8 -d E:\\client_code -client E:\\client_code\\WeatherWebService.wsdl
    6. 当cmd指令无异常输出,正常结束的时候,代码已经生成成功了,如图所示:

       

  4. 使用soapui模拟服务端

    1. 打开soapUI,新建一个工程,选择刚刚保存的天气预报wsdl
    2. 右键服务,选择Generate MockService
    3. 默认配置即可,单击OK继续下一步操作 (这里可以也可以自定义名称,遵随个人喜好)
    4. 继续默认配置,单击OK继续下一步操作(这里可以也可以自定义名称,遵随个人喜好)
    5. 既然是模拟的服务端,那么就可以自定义服务端返回的结果,调用正常or失败,一切follw your heart,完全自定义
    6. 修改Host地址为自己的电脑Ip,当然也可以不修改,只要能够解析自己的机器名即可,可以通过修改host文件等等方式来实现
    7. 修改好host地址之后,单击启动按钮,即可完成服务端的模拟
    8. 测试是否模拟的服务是否可以访问,在浏览器中输入你机器的ip+8088(第6步设置的)+path?wsdl,能显示wsdl的内容即表示模拟成功。例如这里我访问的是我本机的服务,故访问地址就可以是http://127.0.0.1:8088/mockWeatherWebServiceSoap?wsdl
  5. 编写测试Demo

    1. 新建一个java project,将生成的代码复制到src目录下,因为返回结果是一个List<String>的封装类,所以需要稍微修改下生成的代码,让他可以在控制台打印出来结果,如图所示:
    2. 能够可以看到天气预报的详情,就说明使用cxf客户端生成代码并调用生成的客户端代码已经成功了。至此,一个使用cxf生成java客户端代码并调用的demo已经完成了。
    3. 说明:在实际项目中,你可以根据你自己的需要去修改生成的代码,比方说做一些封装什么的,方便调用都是可以的,并不是生成的代码不能修改

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值