SpringBoot 的 Web Service 类型常见有 RESTful Web Service 和 SOAP Web Service 两种,RESTful 风格的 web 服务比较常用,但实际工作中仍有部分场景用到 SOAP Web Service。SpringBoot 实现 SOAP Web Service 的方式有多种,个人觉得 cxf 比较简单,下面采用 cxf 来实现。
1. 添加 maven 依赖
![0db4db348c78600d21f603ba7c0307f9.png](https://i-blog.csdnimg.cn/blog_migrate/baf87140c60e05dfdf36b9e3d1ade5e0.png)
2. 根据实际应用场景开发 Web Service
接口类:
![6f612a830c1dd56a8c7fb5ea651bac3b.png](https://i-blog.csdnimg.cn/blog_migrate/c4c4cf9a1baff2c5ee22b5acc22830d8.png)
实现类:
![0adf2eec47e65660d2844915fbe307cf.png](https://i-blog.csdnimg.cn/blog_migrate/e6d0ad98197be39af41a5343a5000de8.png)
这里以最简便的方式实现业务逻辑,关键是注解的使用,此外还可以通过 @SOAPBinding、@WebResult 等注解以及上述注解的一些属性对服务进行配置,这里不再赘述。
3. 添加配置发布 Web Service
SpringBoot 框架最大的优点之一就是简化配置,习惯优先于配置,因此大部分配置都有默认值,不需要我们去配置。当需要个性化配置时,通常用 java 类的配置方式来代替繁琐的 xml 配置,简洁直观,不易出错;即使出现错误,也能借助 IDE 在编译时期发现和精确定位,而 xml 配置却是在运行时才能发现,而且不好定位。
![76709bffd888c8f4b76ce631b3fd5bc6.png](https://i-blog.csdnimg.cn/blog_migrate/967e5adb691c9449445ec8bcb7fd5a6f.png)
可以同时发布多个服务, 每个服务配置一个 Endpoint Bean,这里只配置一个服务。
4. 运行 springboot 项目
![6ac9186dc24ce6d9dd77d51538ff53f8.png](https://i-blog.csdnimg.cn/blog_migrate/325fc5555dcf30cc455aa589d2403ed9.png)
看到上面项目启动的日志信息,证明服务发布成功,注意 soap webservice 默认在发布路径加上 / services,可以在配置类中增加如下代码改变该路径
@Bean
public ServletRegistrationBean dispatcherServlet() {
/* “/soap/*” 为自己配置的 soap webservice 发布路径前缀 */
return new ServletRegistrationBean(new CXFServlet(), "/soap/*");
}
下面用 soapUI 工具调用服务接口
![b29a8a60d4c296fa67d5fcacff437986.png](https://i-blog.csdnimg.cn/blog_migrate/74138a6b2572c9c90d44e91dd6f98788.png)
至此,soap Web Service 服务已成功发布。
来源链接:
https://www.cnblogs.com/stom/p/10481618.html