根据wsdl文件反向生成WebService的客户端与服务端,整合到SpringBoot

根据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博客

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供相关的步骤和代码示例。 首先,我们需要在Spring Boot项目中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> ``` 接着,我们需要创建一个WebService,可以在Spring Boot项目中创建一个新的类,例如: ```java import javax.jws.WebMethod; import javax.jws.WebService; @WebService public class MyWebService { @WebMethod public String sayHello(String name) { return "Hello, " + name + "!"; } } ``` 此时,我们已经创建了一个简单的WebService,其中包含一个`sayHello`方法,用于返回传入的参数加上一句问候语。 然后,我们需要在Spring Boot项目中添加一个配置类,用于配置WebService的相关信息,例如: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter; @Configuration public class WebServiceConfig { @Bean public SimpleJaxWsServiceExporter simpleJaxWsServiceExporter() { SimpleJaxWsServiceExporter exporter = new SimpleJaxWsServiceExporter(); exporter.setBaseAddress("http://localhost:8080/services/"); return exporter; } } ``` 在上述配置中,我们使用了`SimpleJaxWsServiceExporter`类,它可以自动将`@WebService`注解的类发布为WebService,并且可以使用`setBaseAddress`方法设置WebService的访问地址。 最后,我们可以使用Java客户端来访问我们创建的WebService,例如: ```java import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Service; public class MyWebServiceClient { public static void main(String[] args) throws Exception { URL url = new URL("http://localhost:8080/services/MyWebService?wsdl"); QName qname = new QName("http://webservice.springboot.example.com/", "MyWebServiceService"); Service service = Service.create(url, qname); MyWebService myWebService = service.getPort(MyWebService.class); String result = myWebService.sayHello("World"); System.out.println(result); } } ``` 在上述代码中,我们使用了Java标准库中的`javax.xml.ws.Service`类来访问我们创建的WebService,并且使用了`MyWebService`接口来调用`sayHello`方法。 以上就是使用Spring BootWebService搭建WebService服务端及使用Java客户端的简单示例,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值