通过JDK(带用户名密码)和idea生成WebService客户端代码
方式一:通过jdk自带的wsimport生成客户端代码
语法:wsimport -d [下载代码的存储位置] -p [代码的包路径] -Xauthfile [校验文件的地址] -keep -verbose [wsdl地址]
- 下载代码的存储位置:就是你项目的位置,指向java目录
- 代码的包路径:java目录下的包路径
- 校验文件的地址:这个文件需要自己创建(只针对wsdl需要验证用户和密码的地址),验证文件authfile.txt内容如下,文件位置和文件名可以自己定义,比如wsdl地址是:http://11.22.33.com:8888/XXX?wsdl,则authfile.txt的写法如下:
http://用户名:密码@00.00.00.com:8888/XXX?wsdl
- 最终执行命令:
simport -d F:\code -Xauthfile -p F:\authfile.txt -keep wsdl的url
方式二:通过idea生成WebService客户端代码
前期准备:
- 在浏览器中访问你的wsdl地址,浏览器会返回一个xml文件给你,将此文件保存到你的电脑中,得到 xxx.xml文件,将后缀名改为wsdl。
- IDEA中项目右键菜单中–>webservice–> Generate Java Code From Wsd,如果右键菜单中没有webservice没关系,是因为你的idea版本的原因,可以在Tools中找到,如果Tools中没有则需要自己添加
- 自己添加:
- 提示需要安装插件如图所示,点击yes
- 弹出需要重启选择restart即可
- 重启后之后我点击项目然后选择webservice选项,找不到的就在tools中
提示:如果是从tools中进去的可能会找不到【generate java code from wsdl】下图这样,那是因为你没有选择自己的项目,选择之后就有了 - 弹窗中填入如图所示的信息。其中wsdl.wsdl文件是url中显示的xml内容保存文件到本地,并修改文件扩展名称为**.wsdl
博主在点击OK的时候,出现过报错信息:java.lang.ClassNotFoundException: javax.xml.soap.SOAPException
后来查询那是因为没有增加axis和soap依赖,因为我们之前选择请求的就是axis,所以添加POM依赖
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>javax.xml.soap</groupId>
<artifactId>javax.xml.soap-api</artifactId>
<version>1.4.0</version>
</dependency>
搞定!
接下来就可以看到生成的客户端代码了,使用IDEA根据wsdl生成WebServices客户端代码到此就已经完成,祝各位码农早日找到另一半,多出去走走