命令行 /IDEA 根据 wsdl 生成 WebService 客户端以及接口调用

首先需配置 wsdl 环境

1、在官网下载环境包或直接在网盘下载:https://hik.lanzoux.com/iKZ0tgloirg

命令行 /IDEA 根据 wsdl 生成 WebService 客户端以及接口调用

2、解压后配置环境变量(以你解压实际路径为准):

 在 CLASSPATH 中添加  D:\apache-cxf-3.3.7\lib;
新建 CXF_HOME D:\apache-cxf-3.3.7
在 PATH 中添加  D:\apache-cxf-3.3.7\bin

3、cmd 中输入 wsdl2java - v 返回版本号说明环境配置成功

命令行生成 webservice 客户端

wsdl2java -d D:\webserviceClient -p top.cway.testWebServiceClient http://cway.top?WSDL

- d 后为生成代码保持路径,- p 为代码保存的包路径,最后的地址为 webservice 服务端地址,一般要加?WSDL 获取其接口信息。

IDEA 生成 webService 客户端

首先鼠标选择项目中的一个包,然后点击顶部菜单栏 Tools->WebServices->Generate Java Code From Wsdl  ,然后输入服务端地址,选 cxf 生成即可

优点:

idea 生成的优点是其自动生成了直接可供测试的 client 代码,而命令行生成的需要自己写测试类调用接口。

调用示例与问题

示例接口 (根据手机号码查询归属地的)

http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

大家可根据该接口生成代码进行测试。这里,IDEA 生成了 get/post/soap 三种形式的 client,经本地测试只有 soap 的可使用,可见 IDEA 还是很方便的。

当参数为一般类型还好办,但是参数为 Holder 怎么传值呢?例如

@WebParam(mode = WebParam.Mode.INOUT, name = "MyData", targetNamespace = "")
javax.xml.ws.Holder<TableOfData> myData

调用时填充参数示例

// 创建 holder
Holder<TableOfData> myData = new Holder<TableOfData>();
// 创建以上泛型对象
TableOfData tableOfData = new TableOfData();
// 定义 holder 值为上述对象
myData.value = tableOfData;
//TableOfData 对象中有个 list 属性,用 item 进行赋值
List zlist = new ArrayList<>();
tableOfData.item = zlist;


目录
  • 首先需配置 wsdl 环境
  • 命令行生成 webservice 客户端
  • IDEA 生成 webService 客户端
  • 调用示例与问题
  • 目录
  • 首先需配置 wsdl 环境
  • 命令行生成 webservice 客户端
  • IDEA 生成 webService 客户端
  • 调用示例与问题
  • 手机扫描二维码访问

    本文标题:《命令行 /IDEA 根据 wsdl 生成 WebService 客户端以及接口调用》作者:极四维博客
    原文链接:https://cway.top/post/779.html
    特别注明外均为原创,转载请注明。

    分享到微信

    扫描二维码

    可在微信查看或分享至朋友圈。

    相关文章

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    «    2024年10月    »
    123456
    78910111213
    14151617181920
    21222324252627
    28293031

    搜索

    控制面板

    您好,欢迎到访网站!
      查看权限

    最新留言

    文章归档

    • 订阅本站的 RSS 2.0 新闻聚合