14.5. 使用 WSDL 配置 JMS
14.5.1. JMS WSDL 扩展名称空间 复制链接链接已复制到粘贴板!
定义 JMS 端点的 WSDL 扩展在命名空间 http://cxf.apache.org/transports/jms 中定义。要使用 JMS 扩展,您需要将 例 14.5 “JMS WSDL 扩展命名空间” 中显示的行添加到您的合同的定义元素中。
例 14.5. JMS WSDL 扩展命名空间
xmlns:jms="http://cxf.apache.org/transports/jms"
xmlns:jms="http://cxf.apache.org/transports/jms"
14.5.2. 基本 JMS 配置 复制链接链接已复制到粘贴板!
概述 复制链接链接已复制到粘贴板!
JMS 地址信息通过 jms:address
元素及其子项提供,即 jms:JMSNamingProperties
元素。jms:address
元素的属性指定识别 JMS 代理和目的地所需的信息。jms:JMSNamingProperties
元素指定用于连接 JNDI 服务的 Java 属性。
使用 JMS 功能指定的信息将覆盖 端点的 WSDL 文件中的信息。
指定 JMS 地址 复制链接链接已复制到粘贴板!
JMS 端点的基本配置是通过将 jms:address
元素用作 服务端口
元素的子级来实现的。WSDL 中使用的 jms:address
元素与配置文件中所用的相同。其属性列在 表 14.2 “JMS 端点属性” 中。
属性 | 描述 |
---|---|
指定 JMS 目的地是否为 JMS 队列或 JMS 主题。 | |
指定连接到 JMS 目的地时要使用的 JMS 连接工厂的 JNDI 名称。 | |
指定发送到请求的 JMS 目的地的 JMS 名称。 | |
指定发送回复的 JMS 目的地的 JMS 名称。此属性允许您使用定义的用户定义的目的地进行回复。详情请查看 第 14.6 节 “使用 Named Reply Destination”。 | |
指定 JNDI 名称,绑定到发送到请求的 JMS 目标。 | |
指定绑定到发送回复的 JMS 目的地的 JNDI 名称。此属性允许您使用定义的用户定义的目的地进行回复。详情请查看 第 14.6 节 “使用 Named Reply Destination”。 | |
指定连接到 JMS 代理时要使用的用户名。 | |
指定连接到 JMS 代理时使用的密码。 |
jms:address
WSDL 元素使用 jms:JMSNamingProperties
子元素来指定连接到 JNDI 提供程序所需的其他信息。
指定 JNDI 属性 复制链接链接已复制到粘贴板!
为增加与 JMS 和 JNDI 提供程序的互操作性,jms:address
元素具有一个子元素,jms:JMSNamingProperties
,允许您指定用于连接 JNDI 提供程序时所用的属性的值。jms:JMSNamingProperties
元素有两个属性: name
和 value
。name
指定要设置的属性的名称。value
属性指定指定属性的值。JMS:JMSNamingProperties
元素也可用于规范提供程序特定的属性。
下表列出了可以设置的常见 JNDI 属性:
-
java.naming.factory.initial
-
java.naming.provider.url
-
java.naming.factory.object
-
java.naming.factory.state
-
java.naming.factory.url.pkgs
-
java.naming.dns.url
-
java.naming.authoritative
-
java.naming.batchsize
-
java.naming.referral
-
java.naming.security.protocol
-
java.naming.security.authentication
-
java.naming.security.principal
-
java.naming.security.credentials
-
java.naming.language
-
java.naming.applet
如需更多有关这些属性中使用的信息的详细信息,请检查您的 JNDI 供应商文档,并查阅 Java API 参考材料。
示例 复制链接链接已复制到粘贴板!
例 14.6 “JMS WSDL 端口规格” 显示 JMS WSDL 端口
规格示例。
例 14.6. JMS WSDL 端口规格
14.5.3. JMS 客户端配置 复制链接链接已复制到粘贴板!
概述 复制链接链接已复制到粘贴板!
JMS 使用者端点指定它们所使用的消息类型。JMS 使用者端点可以使用 JMS ByteMessage
或 JMS TextMessage
。
使用 ByteMessage
时,使用者端点使用 字节[]
作为将数据存储到 JMS 消息正文中的数据的方法。发送消息时,消息数据(包括任何格式信息)被打包成 字节[]
,并在消息正文放置之前被放入一个线路中。收到消息后,消费者端点将尝试传播消息正文中存储的数据,就像以字节 []
打包一样。
使用 TextMessage
时,使用者端点使用字符串作为消息正文中存储和检索数据的方法。发送消息时,消息信息(包括任何格式特定信息)将转换为字符串并放入 JMS 消息正文。当收到消息时,消费者端点将尝试推断 JMS 消息正文中存储的数据,就如同它被打包成一个字符串一样。
当原生 JMS 应用与 Apache CXF 用户交互时,JMS 应用负责解读消息和格式化信息。例如,如果 Apache CXF 合同指定用于 JMS 端点的绑定是 SOAP,并且消息被打包为 TextMessage
,则接收的 JMS 应用程序将收到包含所有 SOAP envelope 信息的文本消息。
指定消息类型 复制链接链接已复制到粘贴板!
JMS consumer 端点接受的消息类型使用可选的 jms:client
元素进行配置。jms:client
元素是 WSDL 端口
元素的子项,它有一个属性:
示例 复制链接链接已复制到粘贴板!
例 14.7 “用于 JMS 消费者端点的 WSDL” 显示用于配置 JMS 使用者端点的 WSDL。
例 14.7. 用于 JMS 消费者端点的 WSDL
14.5.4. JMS 提供程序配置 复制链接链接已复制到粘贴板!
概述 复制链接链接已复制到粘贴板!
JMS 提供程序端点具有多种可配置行为。包括:
- 如何关联消息
- 使用 durable 订阅
- 如果服务使用本地 JMS 事务
- 端点使用的消息代理
指定配置 复制链接链接已复制到粘贴板!
提供程序端点行为可通过可选 jms:server
元素进行配置。jms:server
元素是 WSDL wsdl:port
元素的子项,具有以下属性:
示例 复制链接链接已复制到粘贴板!
例 14.8 “用于 JMS 提供程序端点的 WSDL” 显示用于配置 JMS 提供程序端点的 WSDL。
例 14.8. 用于 JMS 提供程序端点的 WSDL