// 未分类
Springboot集成SOAP(WSDL)调用
发布 2021-06-20 · 永久链接
再一次接触wsdl这个东西
工作需要与.net平台服务对接数据交互,平台提供了wsdl,而我这边系统使用java栈开发。
一般流程:
- 得到wsdl连接,如*http://xxx.xxx.xxx.xxx:xxxx/ooooo/xxxxx.svc?wsdl*
- 使用`JDK_HOME/bin`下的`wsimport.exe`生成调用代码,或`idea`的插件生成Stub类
- 直接new生成的类调用方法即可
### wsimport方式
`wsimport`位于`JDK_HOME/bin`, 直接执行
``` bash
wsimport -s /目标目录 http://xxxxx.svc/wsdl
```
然后把生成的java类放入工程即可
wsdl的那个xml有个`wsdl:service`标签,标签有个name属性,把那个类new出来就可以调用里边的方法了。
### idea插件方式
idea自带生成功能,直接选一个包,标题栏选择`tool->webservice->gen java code from wsdl`
生成后,可能会放错地方,自行调整包名和文件夹。
pom文件加入如下依赖(版本看情况调整,玄学层面)
``` xml
org.apache.axis2
axis2
1.7.9
pom
org.apache.axis2
axis2-adb
1.7.9
org.apache.axis2
axis2-transport-local
1.7.9
org.apache.axis2
axis2-transport-http
1.7.9
```
不然起不来,或起来了执行报错,报错类似:
``` log
2021-06-21 15:00:08.786 [http-nio-23333-exec-1] ERROR c.g.xxxxx.filter.JwtFilter - org.apache.axis2.transport.http.CommonsHTTPTransportSender
org.apache.axis2.deployment.DeploymentException: org.apache.axis2.transport.http.CommonsHTTPTransportSender
at org.apache.axis2.deployment.AxisConfigBuilder.processTransportSenders(AxisConfigBuilder.java:736)
at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:123)
at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:629)
at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:116)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:210)
```