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....
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框架...
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 Boot简化了设置过程,Spring MVC提供了MVC模式,Spring Data支持数据库交互,而Spring Web Services专注于SOAP服务。压缩包可能包含Spring框架的集成示例,演示如何在实际项目中应用这些功能。 5. **Apache ...