第 13 章 使用 SOAP Over JMS


摘要

Apache CXF 实施 W3C 标准 SOAP/JMS 传输。这个标准旨在为 SOAP/HTTP 服务提供更强大的替代方法。使用这个传输的 Apache CXF 应用程序应该能够与实施 SOAP/JMS 标准的应用程序交互。传输在端点的 WSDL 中直接配置。

注意 :在 CXF 3.0 中删除了对 JMS 1.0.2 API 的支持。如果您正在使用红帽 JBoss Fuse 6.2 或更高版本(包括 CXF 3.0),您的 JMS 提供商必须支持 JMS 1.1 API。

13.1. 基本配置

概述

JMS 协议的 SOAP 由全球 Wide Web Consortium (W3C)定义为为大部分服务使用的自定义ary SOAP/HTTP 协议提供更可靠的传输层的方法。Apache CXF 实现与规范完全兼容,并且应与还合规的任何框架兼容。

此传输使用 JNDI 来查找 JMS 目的地。调用操作时,该请求将打包为 SOAP 消息,并在 JMS 消息的正文中发送到指定的目的地。

使用 SOAP/JMS 传输:

  1. 指定传输类型是 SOAP/JMS。
  2. 使用 JMS URI 指定目标目的地。
  3. 另外,还可配置 JNDI 连接。
  4. (可选)添加额外的 JMS 配置。

指定 JMS 传输类型

您会将 SOAP 绑定配置为在指定 WSDL 绑定时使用 JMS 传输。您可以将 soap:binding 元素的 transport 属性设置为 http://www.w3.org/2010/soapjms/例 13.1 “使用 JMS 绑定规格的 SOAP” 显示使用 SOAP/JMS 的 WSDL 绑定。

例 13.1. 使用 JMS 绑定规格的 SOAP

<wsdl:binding ... >
  <soap:binding style="document"
                transport="http://www.w3.org/2010/soapjms/" />
  ...
</wsdl:binding>

指定目标目的地

在为端点指定 WSDL 端口时,可以指定 JMS 目标目的地的地址。SOAP/JMS 端点的地址规格使用与 SOAP/HTTP 端点相同的 soap:address 元素和 属性。区别在于地址规格。JMS 端点使用 JMS URI,如 JMS 1.0 的 URI Scheme 中定义的。例 13.2 “JMS URI 语法” 显示 JMS URI 的语法。

例 13.2. JMS URI 语法

jms:variant:destination?options

表 13.1 “JMS URI 变体” 描述 JMS URI 的可用变体。

表 13.1. JMS URI 变体
变体描述

jndi

指定目的地名称是 JNDI 队列名称。使用这种变体时,您必须提供用于访问 JNDI 供应商的配置。

jndi-topic

指定目的地名称是 JNDI 主题名称。使用这种变体时,您必须提供用于访问 JNDI 供应商的配置。

队列

指定目的地是使用 JMS 解析的队列名称。提供的字符串传递到 Session.createQueue (),以创建目的地表示。

topic

指定目的地是使用 JMS 解析的主题名称。提供的字符串传递到 Session.createTopic (),以创建目的地表示。

JMS URI 的选项 部分用于配置传输,并在 第 13.2 节 “JMS URI” 中进行讨论。

例 13.3 “SOAP/JMS 端点地址” 显示用于使用 JNDI 检查目标目的地的 SOAP/JMS 端点的 WSDL 端口条目。

例 13.3. SOAP/JMS 端点地址

<wsdl:port ... >
  ...
  <soap:address location="jms:jndi:dynamicQueues/test.cxf.jmstransport.queue" />
</wsdl:port>

配置 JNDI 和 JMS 传输

SOAP/JMS 提供了多种方法来配置 JNDI 连接和 JMS 传输:

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.