webservice axis 使用idea从wsdl生成客户端和服务端代码

因为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,因此需要自己调整,如果接口双方便于调试逻辑又不复杂的话,还是建议手写调用逻辑就行了。

你可能感兴趣的:(webservice axis 使用idea从wsdl生成客户端和服务端代码)