7.3. 消息传递应用程序更改


本节介绍 JBoss EAP 7 中的各种消息传递应用更改。另外,您还可以了解更多有关如何:

  • 更改 Jakarta Messaging 部署描述符
  • 更新外部 Jakarta Messaging 客户端
  • 替换已弃用的地址设置属性
  • 配置所需的消息传递应用程序更改

7.3.1. 替换或更新 Jakarta Messaging 部署描述符

从 JBoss EAP 7 开始,由命名模式 -jms.xml 标识的专有 HornetQ 消息传递资源部署描述符文件无法正常工作。以下是 JBoss EAP 6 中的 Java Message Service 资源部署描述符文件的示例:

<?xml version="1.0" encoding="UTF-8"?>
<messaging-deployment xmlns="urn:jboss:messaging-deployment:1.0">
  <hornetq-server>
    <jms-destinations>
      <jms-queue name="testQueue">
        <entry name="queue/test"/>
        <entry name="java:jboss/exported/jms/queue/test"/>
      </jms-queue>
      <jms-topic name="testTopic">
        <entry name="topic/test"/>
        <entry name="java:jboss/exported/jms/topic/test"/>
      </jms-topic>
    </jms-destinations>
  </hornetq-server>
</messaging-deployment>
Copy to Clipboard Toggle word wrap

如果您在上一发行版本中的应用程序中使用 -jms.xml Java Message Service 部署描述符,您可以转换应用程序以使用 Jakarta EE 平台的 Resource Definition 和 Configuration 部分中指定的标准部署描述符,或者您可以更新部署描述符以使用 messaging-activemq-deployment 模式。如果您选择更新描述符,您需要进行以下修改:

  • 将命名空间从 "urn:jboss:messaging-deployment:1.0" 改为 "urn:jboss:messaging-activemq-deployment:1.0"。
  • <hornetq-server> 元素的名称改为 <server>

修改的文件应类似以下示例。

<?xml version="1.0" encoding="UTF-8"?>
<messaging-deployment xmlns="urn:jboss:messaging-activemq-deployment:1.0">
  <server>
    <jms-destinations>
      <jms-queue name="testQueue">
        <entry name="queue/test"/>
        <entry name="java:jboss/exported/jms/queue/test"/>
      </jms-queue>
      <jms-topic name="testTopic">
        <entry name="topic/test"/>
        <entry name="java:jboss/exported/jms/topic/test"/>
      </jms-topic>
    </jms-destinations>
  </server>
</messaging-deployment>
Copy to Clipboard Toggle word wrap

7.3.2. 替换 HornetQ API

JBoss EAP 6 包含 org.hornetq 模块,允许您在应用源代码中使用 HornetQ API。

Apache ActiveMQ Artemis 取代了 JBoss EAP 7 中的 HornetQ,因此您必须迁移使用 HornetQ API 的任何代码以使用 Apache ActiveMQ Artemis API。此 API 的库包含在 org.apache.activemq.artemis 模块中。

ActiveMQ Artemis 是 HornetQ 的演进,因此许多概念仍然适用。

7.3.3. 替换已弃用的地址设置属性

使用 auto-create-jms-queues、 auto-delete-jms-queues auto-create-jms-topicsauto-delete-jms-topics 属性自动创建和自动删除主题和队列的功能仅在 JBoss EAP 7 中完全配置。这些属性已弃用,它们 仅作为技术预览功能提供,且不被支持。

您必须使用以下替换属性替换这些已弃用的属性。

注意

弃用的属性不再配置此功能,因为 JBoss EAP 8.0 无效。不支持替换属性。它们仅作为在最佳工作基础之上迁移的方法。

Expand
弃用的属性替换属性

auto-create-jms-queues

auto-create-queues

auto-delete-jms-queues

auto-delete-queues

auto-create-jms-topics

auto-create-addresses

auto-delete-jms-topics

auto-delete-addresses

在 JBoss EAP 6 中,默认的地址设置属性设为 false。从 JBoss EAP 7 开始,默认情况下替换属性设为 true

如果您希望保留 JBoss EAP 6 行为,您必须将替换属性设置为 false

有关这些替换属性的更多信息,请参阅 JBoss EAP 7.4 配置消息传递 指南中的 地址设置属性

7.3.4. JBoss EAP 7 所需的消息传递应用程序更改

从 JBoss EAP 7.2 开始,如果客户端应用直接依赖于 INVENTORY 客户端 JAR,例如: artemis-jms-clientartemis-commonsartemis-core-client,或 artemis-selector,那么您必须在 pom.xml 文件中为 wildfly-client-properties 添加以下依赖关系。

<dependency>
  <groupId>org.jboss.eap</groupId>
  <artifactId>wildfly-client-properties</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

在从旧的 JBoss EAP 7 客户端中调用 message.getJMSReplyTo() 时,避免 JMSRuntimeException,如 JBEAP-15889 所述。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat