http://www.infoq.com/cn/articles/arjen-poutsma-spring-ws
InfoQ:是什么东西使Spring Web Services变得如此独树一帜,为什么我要用它而不用Axis、XFire或者ActiveSOAP?
AP:Spring Web Services有几个独特的特性。首先,它完全专注于契约优先的Web Service设计。这基本上意味着你必须编写自己定义XML消息的XSD Schema。你可以引用WSDL中的Schema(虽然Spring Web Services也可以从XSD中生成WSDL),并将它用于验证。值得关注的事情是,当人们使用契约优先的开发风格时,他们在Web Services方面的许多互通性问题就消失了。这就是契约优先之所以被普遍当作是一种最佳实践的原因。你基本上是在设计一个XML API:你用Java实现这个API的事实,只是没有客户会在意的一个实现细节而已。
其次,Spring Web Services提供了契约和实现之间的一种松耦合:没有wsdl2java工具将契约直接连接到一个类;而是用你喜欢的任何方式(DOM、SAX、 StAX,甚至XML封送技术如JAXB、Castor、JIBX或者XMLBeans),实现处理得到的XML的端点(endpoint)。你将得到的请求映射到端点的方式,完全由你自己决定;默认情况下,我们提供基于消息内容的映射,或者SOAPAction Header。主要的思想是,你不用处理方法调用,而是处理XML消息。
最后,你可以从Spring项目中期待这些特性:
- WS-Sercurity实现与Acegi Security整合;
- JMS支持使用Spring 2的Message Driven POJO;
- 主客户端类(WebServiceTemplate)提供一种类似于JdbcTemplate的API;
- XML封送支持完全独立于Web Services(以便它可以用在其他的设置中);
- 它适用于JDK 1.4及以上版本(虽然也有特定于Java 5的特性)。
InfoQ:因此在默认情况下,我的应用程序是从消息传送XML的?以哪种形式——以DOM树、流、Reader还是其他形式?
AP:应用程序传送一个XML输入抽象进行读取,并且一个输出抽象写入(相应为javax.xml.transform.Source和 javax.xml.transform.Result)。这样你的代码就不依赖任何特殊的XML处理API了。这个机制的实际实现取决于你选择使用的消息工厂。我们给SOAP提供了两种工厂:默认的是基于SAAJ的(javax.xml.soap,J2EE 1.4的一部分),它在底层使用DOM。对于更大的消息,我们支持Axis2的AXIOM,它使用一种StAX流。
InfoQ:因此在默认情况下,我的应用程序是从消息传送XML的?以哪种形式——以DOM树、流、Reader还是其他形式?
AP:应用程序传送一个XML输入抽象进行读取,并且一个输出抽象写入(相应为javax.xml.transform.Source和 javax.xml.transform.Result)。这样你的代码就不依赖任何特殊的XML处理API了。这个机制的实际实现取决于你选择使用的消息工厂。我们给SOAP提供了两种工厂:默认的是基于SAAJ的(javax.xml.soap,J2EE 1.4的一部分),它在底层使用DOM。对于更大的消息,我们支持Axis2的AXIOM,它使用一种StAX流。
2.http://www.iteye.com/news/1065
相关推荐
标题 "Spring Web Services 框架入门研究--发布服务" 提到的是关于使用Spring框架构建Web服务的内容。Spring Web Services是Spring生态体系中的一部分,它专注于创建基于SOAP(Simple Object Access Protocol)的互...
本书《Spring web services 2 cookbook》是一本专注于Spring Web Services技术的实用指南。Spring Web Services是基于Spring框架的一个构建Web服务的解决方案,它允许开发者设计、开发和使用基于Spring框架的SOAP ...
《Spring Web Services 2 Cookbook》是一本专注于Spring Web Services 2框架实践的书籍,于2012年2月发布。这本书旨在帮助开发者更高效地利用Spring Web Services框架构建健壮且灵活的Web服务。Spring Web Services...
Spring Web Services 官网 Spring Web Services API。 Spring Web Services 开发文档。
### Spring Web Services (Spring WS)概述与核心技术解析 #### 一、Spring Web Services 简介 ##### 1.1 引言 Spring Web Services(简称Spring WS)是Spring框架的一部分,专注于提供一种简单的方式来创建健壮且...
Tutorialspoint Spring Web Services 教程.epub
总的来说,Web Services平台架构在Java中的实现涉及多个层面:定义服务接口(WSDL)、传输消息(SOAP)、服务发现(UDDI)、安全(WS-Security)以及开发工具(如JAX-WS、Spring Web Services和JAX-RS)。...
本文将深入探讨Spring如何整合Flex以及如何通过WebServices实现数据通信。 首先,让我们了解Spring与Flex整合的基础。Spring框架提供了多种方式来与Flex客户端进行交互,最常用的是通过HTTP服务和AMF(Action ...
Spring Web Service是Spring社区基于Spring提供的一个关注于创建”文档驱动”的Web Service的模块, 它的主要目标是方便基于”契约优先”(Contract-First)的SOAP服务的开发. 好像没有多少人讨论, 大多数的话题都是...
2. Spring Web Services:Spring Web Services模块提供了创建基于SOAP的Web服务的功能,与`spring-web.jar`结合可以方便地构建服务端和消费端。 3. Spring Security:用于Web应用的安全控制,它可以与`spring-web....
Building RESTful Web Services with Spring 5 – Second Edition: Leverage the power of Spring 5.0, Java SE 9, and Spring Boot 2.0 Find out how to implement the REST architecture to build resilient ...
Spring通过其核心模块(如IoC容器)以及丰富的扩展模块(如Spring MVC和Spring Web Services)为开发者提供了强大的支持。 在描述中提到了`spring-web-3.2.0.RELEASE.jar`,这是Spring框架的Web模块,包含了处理Web...
Spring是目前非常流行的Java应用框架,其提供了丰富的开发组件,WS(Web Service)是其中重要的组成部分。Web Service是一种基于Web的分布式计算技术,它使得不同应用程序能够通过Internet通信和交互。Spring对WS的...
《Spring Webscripts 参考文档》是Spring框架的一个重要组成部分,主要关注Spring Web Services的动态脚本功能。Spring Webscripts旨在提供一种结构化、可重用且可配置的方式来创建Web服务端的动态响应。它允许...
Spring Web Services(Spring-WS)是Spring框架的一个模块,它为构建基于SOAP的消息服务提供了一种轻量级的编程和配置模型。本文主要介绍了Spring Web Services的基本概念、为什么选择契约先行(Contract First)的...
除了JAX-WS和JAX-RS,Spring框架也提供了强大的支持,如Spring Web Services和Spring MVC,可以方便地与数据库和其他服务集成,处理图像文件的存储和检索。 在处理图像文件时,通常需要对图像进行编码和解码,如...
在Web服务方面,Spring提供了Spring Web Services模块,支持WSDL-first和XML Schema-driven的Web服务开发。 其次,Hibernate是一个对象关系映射(ORM)框架,它消除了Java应用程序与数据库之间的直接耦合。通过使用...
在Spring Web Service项目中,这里可能配置了Spring MVC或Spring Web Services的DispatcherServlet,以及Spring的上下文配置。 `lib`目录包含了项目运行所需的外部依赖库。Spring Web Service项目会依赖Spring框架...
Spring Boot简化了设置过程,Spring MVC提供了MVC模式,Spring Data支持数据库交互,而Spring Web Services专注于SOAP服务。压缩包可能包含Spring框架的集成示例,演示如何在实际项目中应用这些功能。 5. **Apache ...