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 端点属性” 中。

表 14.2. JMS 端点属性

属性描述

destinationStyle

指定 JMS 目的地是否为 JMS 队列或 JMS 主题。

jndiConnectionFactoryName

指定连接到 JMS 目的地时要使用的 JMS 连接工厂的 JNDI 名称。

jmsDestinationName

指定将请求发送到的 JMS 目的地的名称。

jmsReplyDestinationName

指定发送回复的 JMS 目的地的 JMS 名称。此属性允许您使用用户定义的目的地来回复。详情请查看 第 14.6 节 “使用 Named Reply Destination”

jndiDestinationName

指定绑定到请求发送到的 JMS 目的地的 JNDI 名称。

jndiReplyDestinationName

指定与发送回复的 JMS 目的地的 JNDI 名称。此属性允许您使用用户定义的目的地来回复。详情请查看 第 14.6 节 “使用 Named Reply Destination”

connectionUserName

指定连接到 JMS 代理时使用的用户名。

connectionPassword

指定连接到 JMS 代理时使用的密码。

jms:address WSDL 元素使用 jms:JMSNamingProperties 子元素,以指定连接 JNDI 提供程序所需要的其他信息。

指定 JNDI 属性

为提高与 JMS 和 JNDI 提供程序的互操作性,jms:address 元素包含一个子元素( jms:JMSNamingProperties ),它允许您指定用于在连接 JNDI 提供程序时使用的属性的值。jms:JMSNamingProperties 元素具有两个属性,即 namevaluename 指定要设置的属性名称。value 属性指定指定的值。JMS:JMSNamingProperties 元素也可用于规范供应商特定属性。

以下是您可以设置的通用 JNDI 属性列表:

  1. java.naming.factory.initial
  2. java.naming.provider.url
  3. java.naming.factory.object
  4. java.naming.factory.state
  5. java.naming.factory.url.pkgs
  6. java.naming.dns.url
  7. java.naming.authoritative
  8. java.naming.batchsize
  9. java.naming.referral
  10. java.naming.security.protocol
  11. java.naming.security.authentication
  12. java.naming.security.principal
  13. java.naming.security.credentials
  14. java.naming.language
  15. java.naming.applet

有关这些属性中要使用的消息的更多详细信息,请检查您的 JNDI 供应商的文档,并查阅 Java API 参考材料。

示例

例 14.6 “JMS WSDL 端口规格” 显示 JMS WSDL 端口 规格的示例。

例 14.6. JMS WSDL 端口规格

<service name="JMSService">
  <port binding="tns:Greeter_SOAPBinding" name="SoapPort">
    <jms:address jndiConnectionFactoryName="ConnectionFactory"
                 jndiDestinationName="dynamicQueues/test.Celtix.jmstransport" >
      <jms:JMSNamingProperty name="java.naming.factory.initial"
                             value="org.activemq.jndi.ActiveMQInitialContextFactory" />
      <jms:JMSNamingProperty name="java.naming.provider.url"
                             value="tcp://localhost:61616" />
    </jms:address>
  </port>
</service>