相关历史文章(阅读本文之前,您可能需要先看下之前的系列?)
WebService SOAP概述 - 第275篇
WSDL是什么“Lese” - 第276篇
一、前言
当官不为民做主,不如回家卖红薯;与其调用别人的服务,不如调用自己的服务。
看别人发布的WSDL服务是不是自己也心痒痒的,赶紧吧,3号技师已经等你好久了。
通过本文你将知道:有什么常见的技师手法,口误,是什么常见的实现方式;实现思路是怎么样子的?
二、常见的webservice实现方式
比如最常用的有JWS、axis2、XFire和CXF,通过框架可以发布wsdl接口,也可以实现webservice客户端
2.1 JWS
JWS(JAX-WS、Java API for XML Web Service)是jdk1.6之后新增的对webservice的支持,JWS是轻量级的实现,使用较方便,如果确定是Java语言所编写的应用程序之间的调用,JWS是最佳选择。
2.2 axis2
Axis2是下一代 Apache Axis。Axis2 虽然由 Axis 1.x 处理程序模型提供支持,但它具有更强的灵活性并可扩展到新的体系结构。Axis2 基于新的体系结构进行了全新编写,而且没有采用 Axis 1.x 的常用代码。支持开发 Axis2 的动力是探寻模块化更强、灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关 Web 服务标准和协议(如 WS-Security、WS-ReliableMessaging 等)的实现中。
2.3 cxf
Apache CXF= Celtix + XFire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。
2.4 XFire
xfire是webservice的一个实现框架,是apache旗下CXF的前身,是一个比较被广泛使用的webservice框架,网上有很多关于如何使用xfire或cxf的helloworld案例,但是对于它是如何运行起来的介绍比较少,最近在排查问题时对xfire的代码进行了debug,因而对xfire的运行有了大概了解,在此进行下简单总结。
通过上面的介绍常用的技术方式就是JWS和cxf。
三、Spring Boot常用的webservice方案
在Spring Boot常用的方案就是SpringWeb Services和cxf。
3.1 Spring Web Services
Spring Web services是Spring推出的一款构建webservice服务的框架。其主要侧重点是创建文档驱动的Web服务。Spring Web Services项目促进了契约优先的SOAP服务开发,提供了多种方式来创建灵活的Web服务,这些服务可以通过多种方式处理XML负载。可无缝地使用Spring依赖注入和配置等概念。
Spring-WS项目由由以下几个项目组成:
(1)Spring-WSCore(spring-ws-core.jar) - 它是主要模块,提供WebServiceMessage和SoapMessage等中央接口,服务器端框架,强大的消息分发功能和支持类来实现Web服务端点。它还提供Web Service消费者客户端作为:WebServiceTemplate。
(2)Spring-WSSupport(spring-ws-support.jar) − 该模块为JMS,电子邮件等提供支持。
(3)Spring-WSSecurity (spring-ws-security.jar) - 该模块负责提供与核心Web服务模块集成的WS-Security实现。使用这个模块,可以添加主体令牌,签名,加密和解密SOAP消息。该模块允许使用现有的Spring Security实现进行认证和授权。
(4)SpringXML(spring-xml.jar) − 该模块为Spring WebServices提供XML支持类。该模块由Spring-WS框架内部使用。
(5)Spring OXM - 该模块提供了XML与对象映射的支持类。
集成依赖:
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-web-servicesartifactId>
dependency>
<dependency>
<groupId>wsdl4jgroupId>
<artifactId>wsdl4jartifactId>
dependency>
3.2 cxf
最常用的是使用cxf开发web-service。本身是基于JAX-WS规范来实现的。当然,本身CXF也实现了JAX-RS规范来实现RESTFul Service。
集成依赖:
<dependency>
<groupId>org.apache.cxfgroupId>
<artifactId>cxf-spring-boot-starter-jaxwsartifactId>
<version>3.2.5version>
dependency>
本节就先介绍这里,下面就实际来摸摸CXF和spring-ws怎么玩吧。
我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。
à悟空学院:http://t.cn/Rg3fKJD
学院中有Spring Boot相关的课程!点击「」进行查看!
SpringBoot视频:http://t.cn/R3QepWG
Spring Cloud视频:http://t.cn/R3QeRZc
SpringBoot Shiro视频:http://t.cn/R3QDMbh
SpringBoot交流平台:http://t.cn/R3QDhU0
SpringData和JPA视频:http://t.cn/R1pSojf
SpringSecurity5.0视频:http://t.cn/EwlLjHh
Sharding-JDBC分库分表实战:http://t.cn/E4lpD6e