Web服务搜索与执行引擎(十)——细看SAAJ的使用

本文详细介绍了如何使用SAAJ(SOAP with Attachments API for Java)来构建和执行Web服务SOAP消息。SAAJ提供了一种简化的方式,用于在Java环境中集成各种Web服务,支持基于文档的同步或异步Web服务。文章阐述了选择SAAJ的原因,SAAJ的定义,以及使用SAAJ构建SOAP消息的五个步骤,包括创建SOAP连接、生成SOAP消息、填充消息、发送消息和检索响应。
摘要由CSDN通过智能技术生成
         看完上一篇blog: Web服务搜索与执行引擎()——初看客户端如何调用Web服务 ,我想我们对当前客户端如何调用Web服务的现状,无论是从高层接口的利用还是低层接口自己手动构建SOAP消息都有了最初步的印象了.接下来将要进行的是整个项目最核心的部分之一:服务的执行.我将为大家展示我们在项目中如何使用 SOAP with Attachments API for Java (SAAJ),简化创建和发送SOAP消息的详细过程。

Web 服务的基础是以标准格式发送和接收消息,这样所有系统都可以理解消息。通常情况下,这种标准格式是 SOAPSOAP 消息可以手工生成和发送,但是如果说我们按上篇blog那样: 在客户端,首先创建一个HttpConnector对象,负责HTTP连接。设定Connector的一些头部信息,比如EndPoinURLSoapAction等。如果网络连接需要使用代理服务器,那也要在这里设定相关的信息。接着创建SoapSerializer对象,用于生成Soap消息。按照WSDL里定义,把所有参数按顺序序列化,得到一个完整的SOAP请求消息。该Soap消息,作为Payload通过HttpConnector被发送到服务端。最后,生成一个SoapReader对象,负责读取服务端返回的SOAP消息,取得其中的返回值。

按上面这种SOAP消息的构建方法的话就会变得复杂起来, 所以说有必要借助于一些API来简化我们的操作.有几个基于JavaAPI可以用来构建低层SOAP消息来访问Web服务。这些API包括SAAJWeb服务调用框架(WSIF)、上篇blog里提到的Axis等。

Ø             选择SAAJ的理由

我们最终选择了SAAJ,因为基于简单及适用性来考虑.SAAJ无疑很适合基于文档的同步或者异步Web ServiceSAAJ使用简单,有助于在Java环境中集成各种Web Service,它扩展了对文档风格的Web Service通信的自然支持(natural support)。SAAJ还支持基于标准接口上的XML消息传递,并且这一点得到了供应商的广泛支持。另外SOAP with Attachments API for Java (SAAJ)—— Java API for XML Messaging (JAXM)的一个分支——能够使许多必需的步骤变得自动化,例如创建上面所说的连接,或者创建和发送实际消息。

Ø             什么是SAAJ

SAAJ是在松散耦合软件系统中利用SOAP协议实现的基于XML消息传递的API规范。顾名思义,SAAJ支持带附件的SOAP消息。
  对于Java API for XML Messaging (JAXM)JAXM 1.0的理念是通过提供消息传递和SOAP API,允许开发人员根据SOAP编写支持消息传递标准的业务应用程序。随着JAXM 1.1版的推出,SOAP API (javax.xml.soap)被分割成了SAAJ1.1规范和JAXM1.1JAXM1.1只包含基于消息传递的APIjavax.xml.messaging)。目前,正在使用的SAAJ版本是1.2

Ø             如何使用

回想那篇blog, Web服务搜索与执行引擎()——WSDL解析精髓,提到了为了使用 SAAJ构建SOAP消息调用该服务,我们将需要从 WSDL 收集下列最基本的信息:

目标名称空间

服务名称

端口名称

操作名称

操作输入参数  

SOAP文档结构简单,利用SAAJ构建起来也比较方便。但我们需要将用户从网页中输入的数据作为SOAP的有效负载发送至异构平台的服务,如何来构建这个有效负载呢?按照什么样的格式将用户输入的数据放入SOAP的有效负载中呢?格式可以从解析WSDL文档过程中知道,即上面说的那些基本信息,但怎么来匹配用户的输入数据呢?这时就需要以WSDL中解析出来的参数名称作为用户从网页中输入的文本框的名字,从而匹配了每一个子参数的值,然后即可构建SOAP消息的有效负载。然后将SOAP消息发送至远程平台。

调用后,将返回一个SOAP消息返回值,我们需要解析,并将结果在网页中呈现给客户,我们利用了JDOM技术,根据从WSDL中解析出的返回信息来提取SOAP中的返回值,最终呈现给用户。

具体过程包括 5 个步骤:

1.       创建 SOAP

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值