根据wsdl文件反向生成WebService的客户端与服务端,整合到SpringBoot集成cxf、axis
一、客户端:
工具:SoapUI 5.7.2
使用soapUI生成,先添加生成工具
1、客户端我这边使用cxf来生成,所以首先把cxf的解压缩目录配置到soapUI的工具变量中,需要配置到bin目录;
服务端使用rpc方式,cxf不支持rpc方式,所以我使用axis 1.x来生成
2、新建项目
3、输入项目名称,wsdl地址或者文件,创建请求,点击OK,根据需要可以选择Create TestSuite和其他选项
4. 生成的项目:表名该接口对外提供6个方法
5. 右击【SCServiceServiceSoapBinding】节点,选择【Generate Code】,再选择Apache CXF(注:我这边使用的是cxf,读者可以根据需要使用其他的),如下图:
6、填写生成的代码输出的系统路径,以及生成代码的所放的包路径,因为我这边需要的是生成webservice的服务端,所以我选择的是【Implementation】,生成实现webservice接口的子类。其中【Client】会生成一个调用客户端,生成webservice客户端需要用到了,而Server可以用来把生成的代码,发布为一个接口,根据需要选择。最后点击【Generate】生成代码。
7、最后生成成功,如下图:注意图中的wsdl2java就是利用了apache cxf安装文件夹的wsdl2java.bat生成的
8、 在系统F盘下面找到如下的代码
9、直接引入到项目中使用
10、Maven所需CXF对应的依赖
<properties> <cxf.version>3.5.8</cxf.version></properties>
<!-- CXF对应的依赖 --><dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-core</artifactId> <version>${cxf.version}</version></dependency><dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>${cxf.version}</version></dependency><dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>${cxf.version}</version></dependency>
踩坑警告:客户端的wsdl必须能够访问,项目才能启动成功,否则会一直卡在项目加载
参考:根据wsdl反向生成webservice服务端(3种方法)_wsdl反向生成服务端-CSDN博客
二、服务端:
参照:SpringBoot集成axis发布WebService服务_springboot axis-CSDN博客