webservice axis 使用idea从wsdl生成客户端
2020-08-18 本文已影响0人
水石间
因为webservice技术比较早,近几年随着restful等技术的兴起,已经不太流行了,使用idea生成的话,好像只有idea2018和之前的版本有效,本文讲一下如果利用idea通过wsdl文件生成webservice的客户端和服务端代码,以备今后项目中用到,有不足之处欢迎大家指正。
一、生成客户端
1、创建项目
点击File --> new project:
image.png
进入下一页: image.png
点确定,回下载axis和相关的库文件,下载完成后初始项目创建成功:
image.png
2、生成客户端
如果是现成的有wsdl文件,将wsdl文件粘贴到example目录下,然后右键: image.png默认Output mode就是客户端,将上面的Package prefix名字写成自己需要的: image.png
主要处理逻辑在xxxSoapBindingStub类里面
二、生成服务端
1、和生成客户端一样,只是在选择Output mode时选server image.png
目前整体结构是这样的: image.png主要的处理逻辑在xxxSoapBindingImpl类里面
2、将生成的部署wsdd中的service粘贴到server-config.wsdd
项目中的server-config.wsdd文件位于 image.png生成客户端的时候会生成对应的wsdd文件,里面有服务配置,需要粘贴到整个项目的WSDD文件里面才能生效。
3、配置tomcat服务器: image.png
然后点确定。
4、配置项目结构中的Artifacts
之前没配这个,起来之后访问localhost:8080/services报根据/services找不到对应的AxisServlate或者是404
image.png
image.png
这样JAX-WS-Apache Axis就加入到项目结构里了。
4、启动tomcat访问localhost:8080/services
到这一步就可以看到最终结果了:
image.png
三、总结
根据wsdl文件反向生成客户端代码和服务端代码很快捷方便,适用于两个对接平台调试不太方便的时候,直接反向生成,减少出错。但是因为是比较旧的技术,反向生成的代码可能有很多通过不了代码规范检查,比如alibaba的或者sonarlint,因此需要自己调整,如果接口双方便于调试逻辑又不复杂的话,还是建议手写调用逻辑就行了。