SOAP和SAAJ
SOAP和XML以及Java的世界似乎并不愿意固步自封。W3C正在为“SOAP消息传递的最佳机制”而努力,而这个机制毫无疑问地需要另外一个版本的类似SAAJ的Java工具包……
【IT专家网独家】Java的SOAP工具包
这些年以来, SOA首次进入Java程序员的视野,大概是1998年左右,一些SOAP服务器和客户端的工具包就已经被创建好了。虽然SOAP规范已经到达了相当程度的稳定性,但是一般XML工具持续平行的发展和各种厂商之间的竞争阻止了任何一个工具包成为Java程序员们的普遍选择。
Java拥有由Sun公司发起的Java社区处理程序,Sun公司试图通过在典型业界代表中通过协议定义标准的APIs(称为Java标准规范需求,JSRs)。其现在已经拥有了两个相关规范版本。其中一个叫做SAAJ的1.3版本中覆盖了最基本的功能,并且在2006年四月已经得到了更新。
其中另外一个产品叫做JAXM,目前处于1.1版。JAXM建立是通过在SAAJ基础上加入消息传输APIs。
为什么SOAP需要附件
作为一个基于XML的消息协议,SOAP消息需要相当强大的处理能力和内存。一个SOAP消息的各种部分都必须遵守XML为允许的字符和字符序列定义的规则,从而保证二进制数据不能直接被包括进来。除此之外,SOAP的实现在决定如何处理内容之前已经典型地分析了整个SOAP消息,因此大量的数据领域能够轻易地超过可用内存。因为所有这些原因,SOAP被公认需要某种机制来承载大量载荷和二进制数据作为附件,而不是封装在SOAP消息里面。
一种显而易见的机制是适用与e-mail消息附件相同的方式,即MIME方式,在此方式中消息集合通过头部和隔板标志。第一部分通常是一个完整的SOAP消息信封,接着是一些与应用程序相关的部分。
带附件的SOAP的API的1.3版本
使用SAAJ的主要对象是一个SOAP消息对象,它由MessageFactory中的一个叫做createMessage的方法创建得到。在SOAP1.1版本和SOAP1.2版本中都存在的一个问题已经被MessageFactory的实现解决了。MessageFactory使得程序员可以指定生成的风格。SAAJ标准的范围强调了构造SOAP消息的API,但是它也的确提供了抽象的SOAP连接类,此连接类的实现可以用于简单的消息传输。
逻辑上说,一个SOAP消息中主要的部分中每一个在SAAJ中都有相应的Java类。这个工具包最明显的特点就是这些代表了SOAP消息各个部分的核心的类实现了相应的org.w3c.dom中的接口。这就意味着SOAP对象在标准的Java库中是同我们熟悉的XML操作工具兼容的。
在SAAJ的工具箱中,一个SOAP消息对象包含了一个完整的SOAP消息。一个消息要么是一个SOAP格式的XML文档,要么是一个MIME消息,而MIME消息最开始也是一个XML文档。这个XML格式的SOAP被包含在一个SOAPPart对象中,它实现了org.w3c.dom文档接口。所有的SOAP消息都包含一个独立的SOAPPart,它反过来又包含了一个SOAP信封,与文档中的根元素对应。
- 本文关键词:

