wsdl 生成 java 客户端代码方法总结

1、解决办法汇总

  • IDEA 老办法

🎯 如果你又 Exlipse 或者老版 IDEA(即有 Application web 选项)那么建议用这两种

📌 如果这两种不支持,那么建议第一种

2、生成WSDL客户端代码方法

WSDL 教程 | 菜鸟教程

2.1 通过 SoapUI 生成

  • 工具:

步骤如下:

找到 Axis 安装路径

  • 注意:如果遇到问题,请先看一下《2.2.2 使用 Axis 的 wsdl2java 工具【推荐】》章节

2.2 安装包工具

2.2.1 通过wsimport生成

    • -s <directory>:指定生成的Java源文件的输出目录,默认为当前目录。
    • -p <package>:指定生成的Java类的包名,默认为根据命名空间自动生成。
    • -d <output-directory>: 指定编译后的类文件输出目录。
    • -keep:这个选项表示生成的源代码文件不会被删除。
    • -extension:支持处理WSDL中的SOAP扩展元素。
    • -Xnocompile:将每个Java文件生成为单独的源文件,而不编译它们。
    • -encoding:指定生成的java文件的编码
    • -wsdllocation:指定生成的java中wsdl的路径
    • wsdl文件路径:通常会将wsdl保存为本地文件
# 示例命令
wsimport -keep -s <source-directory> <wsdl-url>
wsimport -p com.example.client -d bin -b bindings.xml http://example.com/service?wsdl


# 示例
wsimport -keep -s src -d bin http://example.com/service?wsdl

2.2.2 使用 Axis 的 wsdl2java 工具【推荐】

  1. 下载并解压 Axis2Apache Axis2 – Releases
      • 新增:AXIS2_HOMEC:\Users\star\Desktop\zips\axis2-1.8.2-bin\axis2-1.8.2
      • Path:%AXIS2_HOME%\bin
      • 验证:wsdl2java -version
  1. 安装 jdk:Java Downloads | Oracle 中国
  2. 打开命令行工具,运行以下命令生成客户端代码:
wsdl2java -uri <wsdl地址> -p com.example.client -d adb -s -o <输出目录>

# 示例:
wsdl2java -uri /Users/javastarboy/work/projects/helloworld.wsdl -p com.example.client -d adb -s -o /Users/javastarboy/work/projects/temp
  • -uri: 指定 WSDL 文件的路径。
  • -p: 指定生成的 Java 文件的包名。
  • -d adb: 指定数据绑定类型,这里使用 ADB(Axis2 Data Binding)。
  • -s: 保留生成的源文件。
  • -o: 指定输出目录。
  1. 注意,问题:
    • 关于 Axis1.4版本还是 2.0 版本,需要看 wsdl 版本号是多少,我一开始用 2.0 版本折腾半天,后来发现 wsdl 是 1.4.1 版本,所以我们无论在使用 SoapUI 还是 wsdl2java 时,都要注意版本号问题
    • 另外,在使用 Axis2.x 时,不知道为啥会报错 java_home 找不到问题,这里解决办法是在 wsdl2java 启动文件中手动配置一下 java 环境变量即可
      • mac:修改~/axis2-1.8.2/bin/wsdl2java.sh
# 追加如下两行
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH

# 下面是原来就又得
dir=`dirname "$0"`
sh "$dir"/axis2.sh org.apache.axis2.wsdl.WSDL2Java $*
      • windows:修改~/axis2-1.8.2/bin/wsdl2java.bat
# 追加如下两行
set JAVA_HOME=你的sdk路径

2.2.3 使用 Apache CXF 的 wsdl2java 工具

  1. 下载并解压 Apache CXF
  2. 将 CXF 的 bin 目录添加到系统的 PATH 环境变量中。
  3. 打开命令行工具,运行以下命令生成客户端代码:
wsdl2java -d /Users/javastarboy/work/projects/temp -p com.example.client /Users/javastarboy/work/projects/helloworld.wsdl
  • -d: 指定输出目录。
  • -p: 指定生成的 Java 文件的包名。

2.3 IDEA 老办法

Application Web 的 Java EE 插件法,但是现在已经没有这个选项了,大家如果有老版本 IDEA 可以试试

2.4 通过 easyWSDL 生成

工具很好用,但是后来发现收费的,蛋疼

2.4.1 准备工作

1、安装 easyWSDL 插件,然后重启 IDEA

2、官网注册账号

注册完,先等等,我们先准备 wsdl 配置文件到项目中

2.4.2 获取 wsdl 文件

  • importAccountViewData:这是一个接口
  • 类似的下马的 uploadDat,importBill 等等都是接口

  • 点击蓝色的 wsdl 可以获得wsdl 详细文件
  • 右键另存为文件后会存储问 .xml 格式,需要手动修改为 .wsdl格式

2.4.3 根据 .wsdl 逆向工程生成 java 文件

1、将所有你需要的 wsdl 文件放于项目中

2、项目根目录处右键,然后点击 EasyWSDL-Add web service

3、首次使用,会提示登录,就是第一步咱们注册的账号密码,输入点击 ok 即可

4、然后进入如下页面

点击右侧 ...然后选中你要生成的 wsdl(也可以默认项目根生成全部)

改为 java 语言,点击 ok

生成后的效果

🎯 说明

  • 这里文件生成应该支持按指定路径生成,这样就不用手动调整文件路径了
  • 我们也可以直接到官网去生成,也很方便,但是完整版收费!!!

2.3.4 官网生成java文件

3、soapUI 测试工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AGI舰长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值