用JAXM开发Web服务.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用JAXM开发Web服务

用JAXM开发Web服务 本文由wallyq贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 阅读本文前您需要以下的知识和工具: JavaTM Web Services Developer Pack 1.1,并且会使用初步使用; 至少会使用一种 EJB 容器来开发、部署 EJB,并且了解怎么在客户端访问 EJB 组件; 一般的 Java 编程知识。 在 J2EE 平台里,要开发一个 Web 服务,我们通常有两种选择: 使用 JAX-RPC(Java API for XML-based RPC) 使用 JAXM(Java API for XML Messaging) 作为对 JAXM 开发技术的入门,本文先不比较它们的技术特点。我将结合一个具体的案例 来讨论 JAXM 的开发技术方方面面。 JAXM 相关概念介绍 通常我们说的 JAXM API,它包括两个包: Javax.xml.soap:它是发送 SOAP 消息的基本包,主要包含了发送带有附件的 SOAP 消息 的 API(SOAP with Attachments API for Java ,SAAJ)。它是 SOAP 消息的基本包,它 为构建 SOAP 包和解析 SOAP 包提供了重要的支持。它包含了发送请求-响应消息相关的 API。 Javax.xml.messaging:定义了 JAXM 的规范,包含了发送和接收消息所需的 API。 JAXM 包含了以下几个概念: (Message) 连接 消息 、 (Connection) 消息提供者 、 (Messaging providers)。 消息 JAXM 消息遵循 SOAP 标准,我们可以通过 JAXM API 方便的创建 SOAP 消息。有两种类 型的消息,带附件的消息和不带附加的消息。不带附件的消息结构如图 1 所示。 如图 1 所示, SAAJ API 中, 在 它使用 SOAPMessage 类来代表 SOAPMessage, 相应的, 使用 SOAPPart 类来代表 SOAPPart,SOAPBody 类代表 SOAP Body。 图 1 不带附件的 SOAP 消息 其中 Header 和 SOAPFault 是可选的, Header 可以多个, Body 只有一个, 如果有 SOAP Fault, 那么它一定在 SOAP Body 后面。带附加的 SOAP 消息如图 2 所示。 图 2 带附件 SOAP 消息 可以看出,一个 SOAP 消息可以有一个或者多个附件。SAAJ API 使用 AttachmentPart 类 来代表 SOAP 消息的附件。 每个 AttachmentPart 有一个 MIME Header 来表示附件的类型。 连接 有两种类型的连接,它们是: 消息发送者到接收者的直接连接, javax.xml.soap.SOAPConnection 表示了这种类型的连接, 由于它是点对点的,所以比较容易使用,即使不在 Servlet 或者 J2EE 容器里也能使用; 到消息提供者的连接,javax.xml.messaging.ProviderConnection 表示了这种连接,这种方 式需要消息提供者,消息发送者和消息使用者通过消息提供者来交互。 消息提供者 消息提供者主要负责传送消息,它把消息路由到目的地,一个消息发出后,可能要经过多个 消息提供者才能到达目的地。 如果使用 MessageProvider,可以达到以下的目的: 除了能够发送 request-response 类型的消息外,还可以发送 One-way(单向)消息; (消息)客户端有时也可以作为服务端来使用。 案例介绍 在本文,我将结合一个具体的案例来介绍 JAXM Web 服务的开发。此案例具体情况如下。 某图书城决定使用 Web 服务来对外提供图书信息查询服务, 图书城现有的系统运行在 J2EE 平台上,客户端通过 JAXM 来使用图书城提供的 Web 服务。系统的体系结构如图 3 所示: 图 3 系统体系结构 客户端可以是一般的 java GUI 程序(当然也可以是 JSP、Servlet 等)。客户端通过 SOAP 消息和 Servlet 容器里运行的 JAXM Servlet 进行交互,JAXM Servlet 是服务提供者,EJB 容器里运行的是业务组件,它们为 JAXM Servlet 提供服务。 客户端请求传递的过程如图 4 所示: 图 4 请求传递的过程 可以看出, 客户端通过 SOAP 和 JAXM 服务端通信, JAXM 使用 EJB 组件来获得业务服务。 系统为客户端提供了三种查询服务:查询所有图书,按类别查询图书,按图书名搜索某本特 定的图书。这三种服务分别有服

文档评论(0)

bh10099 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档