Spring 同时发布了Web Services 项目的两个版本:作为开发主干的3.0.4.RELEASE 和作为运维的2.4.3.RELEASE。两个版本都已更新,可以在Spring Framework 5.1.0 上运行,支持Java 11。
Spring Web Services(Spring-WS)是 Spring 社区的一款产品,致力于创建文档驱动的 Web 服务。它旨在促进契约优先的SOAP 服务开发,允许使用操作XML 有效负载的多种方法中的一种来创建灵活的Web 服务。
在新版本的Spring Web Services 中,最显著的改进是支持Java 11。自从Java 9 以来,一些关键的Java EE 包(如核心XML 包和基于soap 的包)的可见性降低了,在 Java 11 中,这些包被完全删除了。因此,要在 Java 9 及以上版本上使用 Spring Web Services,开发人员不能再依赖于 JDK 提供关键的 XML 和基于 soap 的库。
Spring Web Services 构建文件中新增一个 Java 11 概要文件,其中包含开发人员必须添加到自己的构建文件中的额外依赖项。在使用 Java 11 时,开发人员应该将依赖项添加到构建文件中。下面是 build.xml 的一个片段,其中包含在版本 3.0.4.RELEASE 上 Java 11 所需要的依赖项:
<dependencies> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-ri</artifactId> <version>2.3.0</version> <type>pom</type> </dependency> <dependency> <groupId>org.jvnet.staxex</groupId> <artifactId>stax-ex</artifactId> <version>1.7.8</version> </dependency> <dependency> <groupId>com.sun.xml.messaging.saaj</groupId> <artifactId>saaj-impl</artifactId> <version>1.3.28</version> </dependency> <dependency> <groupId>javax.xml.soap</groupId> <artifactId>javax.xml.soap-api</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId> <version>2.3.0</version> </dependency>
仍然使用 Spring Web Services 2.4.3.RELEASE 的开发人员使用 Java 11 时不会有问题。这个版本只是使用了稍微旧一点的 SOAP API(1.3.8)。下面是 build.xml 的一个片段,其中包含在版本 2.4.3.RELEASE 上 Java 11 所需要的依赖项:
<dependencies> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-ri</artifactId> <version>2.3.0</version> <type>pom</type> </dependency> <dependency> <groupId>org.jvnet.staxex</groupId> <artifactId>stax-ex</artifactId> <version>1.7.8</version> </dependency> <dependency> <groupId>com.sun.xml.messaging.saaj</groupId> <artifactId>saaj-impl</artifactId> <version>1.3.28</version> </dependency> <dependency> <groupId>javax.xml.soap</groupId> <artifactId>javax.xml.soap-api</artifactId> <version>1.3.8</version> </dependency> <dependency> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId> <version>2.3.0</version> </dependency>
除了一般的 Java 11 支持外,这两个 Spring Web Services 版本还都带来了一系列的 Bug 修复和改进,例如:
-
SaajSoapMessage 创建时带有默认的(空的)SoapEnvelope( SWS-1018 ) ;
-
SimpleXsdSchema 不初始化产生 NullPointerException( SWS-1036 )的属性;
-
解决第三方库版本冲突( SWS-1030 );
-
Ehcache——OWASP 依赖项检查问题( SWS-1033 )。
Spring Web Services 3.0.4.RELEASE 特有的特性包括:
-
使 SimpleXsdSchema 提供更有效的错误信息( SWS-1037 );
-
改进文档,一系列对于文档的小幅修正,如错误引用(应该指向 Maven Wrapper 而错误地指向了 Gradle Wrapper 的)、失效连接等等( SWS-1038 );
-
升级到 Spring 的最新版本 ( SWS-1039 )。
Spring Web Services 工件位于 maven 中心库中和 http://repo.spring.io / 网站上。 Spring GitHub 库中还提供了一个例子,演示如何搭配使用 Spring Web Services 和 Spring Boot。
查看英文原文: Spring Releases Versions 3.0.4 and 2.4.3 Web Services
评论 1 条评论