1、解决办法汇总
- SoapUI工具
- wsimport工具
- Axis2 的 wsdl2java工具
- Apache CXF 工具
- easyWSDL工具
- Eclipse (如果开发金蝶 EAS 功能,尽量也用 eclipse 生成,避免问题)
- eclipse202109网盘链接
- Eclipse 官方下载链接
- 金蝶EAS官方提供办法
- IDEA 老办法
🎯 如果你又 Exlipse 或者老版 IDEA(即有 Application web 选项)那么建议用这两种
📌 如果这两种不支持,那么建议第一种
2、生成WSDL客户端代码方法
WSDL 教程 | 菜鸟教程
2.1 通过 SoapUI 生成
- 工具:
-
- Axis 下载:Index of /dist/ws/axis
- soapUI 下载:Download REST & SOAP Automated API Testing Tool | Open Source | SoapUI
- 教程:通过wsdl文件生成 WebService客户端代码 - 简书
- 注意:如果遇到问题,请先看一下《2.2.2 使用 Axis 的 wsdl2java 工具【推荐】》章节
步骤如下:
找到 Axis 安装路径
- 注意:如果遇到问题,请先看一下《2.2.2 使用 Axis 的 wsdl2java 工具【推荐】》章节
2.2 安装包工具
2.2.1 通过wsimport生成
- 教程:wsimport wsdl 转 java_mob64ca12d4650e的技术博客_51CTO博客
- 前提:安装了
- wsimport命令提供了一些常用的选项,用于指定生成的Java代码的配置。以下是一些常用选项的介绍:
-
-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 工具【推荐】
- 下载并解压 Axis2:Apache Axis2 – Releases
-
- 安装版:📎axis2-1.8.2-bin.zip
- IDEA 插件版:📎axis2-idea-plugin-1.8.2.zip
- 系统环境变量
-
-
- 新增:
AXIS2_HOME
C:\Users\star\Desktop\zips\axis2-1.8.2-bin\axis2-1.8.2
- Path:
%AXIS2_HOME%\bin
- 验证:
wsdl2java -version
- 新增:
-
- 安装 jdk:Java Downloads | Oracle 中国
- 打开命令行工具,运行以下命令生成客户端代码:
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
: 指定输出目录。
- 注意,问题:
-
- 关于 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
- mac:修改
-
# 追加如下两行
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
- windows:修改
-
# 追加如下两行
set JAVA_HOME=你的sdk路径
2.2.3 使用 Apache CXF 的 wsdl2java 工具
- 下载并解压 Apache CXF。
- 将 CXF 的 bin 目录添加到系统的 PATH 环境变量中。
- 打开命令行工具,运行以下命令生成客户端代码:
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 可以试试
- 利用idea生成webservice客户端超详解步骤(wsdl文件的使用)_java_脚本之家
- idea wsdl生成java代码工具 idea生成wsdl客户端代码_mob64ca1407d5aa的技术博客_51CTO博客
2.4 通过 easyWSDL 生成
工具很好用,但是后来发现收费的,蛋疼
2.4.1 准备工作
1、安装 easyWSDL 插件,然后重启 IDEA
2、官网注册账号
- The World’s leading WSDL client generator
- 注意,不要使用右侧快捷登录,请使用左侧注册
注册完,先等等,我们先准备 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
生成后的效果
🎯 说明
- 这里文件生成应该支持按指定路径生成,这样就不用手动调整文件路径了
-
- 另一个插件支持,但是现在找不到了,大家可以搜搜,教程如下利用idea生成webservice客户端超详解步骤(wsdl文件的使用)_java_脚本之家
- 我们也可以直接到官网去生成,也很方便,但是完整版收费!!!
2.3.4 官网生成java文件
- 网址:Log in
3、soapUI 测试工具
- WSDL测试工具:Download REST & SOAP Automated API Testing Tool | Open Source | SoapUI
- 教程:java webservice 根据wsdl文件生成客户端代码;webservice可视化测试工具SOAPUI;乱码。_51CTO博客_jdk生成webservice客户端