8

嗨,我正在从 JBoss_6.1.0_final 迁移到 Wildfly 10。

在 JBoss for Queue 名称中,格式类似于

<queue name="TEST_QUEUE">
  <entry name="/queue/TEST_QUEUE"/>
</queue>

在 MDB 注释中是

@ActivationConfigProperty(propertyName = "destination",
                propertyValue = "queue/TEST_QUEUE")

现在在wildfly中如下所示。参考链接

<jms-queue name="TEST_QUEUE" entries="jms/queue/TEST_QUEUE java:jboss/exported/jms/queue/TEST_QUEUE"/>

带激活属性

@ActivationConfigProperty(propertyName = "destination",
                        propertyValue = "jms/queue/TEST_QUEUE")

在wildfly中,我尝试通过jms/从队列名称和注释中删除它,它在具有相同队列名称的wildfly中工作正常,例如

<jms-queue name="TEST_QUEUE" entries="queue/TEST_QUEUE java:jboss/exported/queue/TEST_QUEUE"/>

现在我的问题是,是否JMS/有目的地添加了队列名称。

编写不带前缀的队列名称是一个好习惯jms/

4

1 回答 1

2

来自 JEE JSR 部分EE.5.7.1.2 Programming Interfaces for Resource Manager Connection Factory References

本规范建议但不要求将所有资源管理器连接工厂引用组织在应用程序组件环境的子上下文中,为每种资源管理器类型使用不同的子上下文。例如,应在 java:comp/env/jdbc 子上下文中声明所有 JDBC™ DataSource 引用,在 java:comp/env/jms 子上下文中声明所有 JMS 连接工厂,在 java:comp/env/mail 中声明所有 JavaMail 连接工厂子上下文,以及 java:comp/env/url 子上下文中的所有 URL 连接工厂。请注意,默认情况下,通过注释声明的资源管理器连接工厂引用不会出现在任何子上下文中

jms上下文不是强制性的。这只是一个最佳实践。

服务器可以或不遵循这种模式。JBoss 没有遵循这一点,wildfly 是,但最终,做你想做的事是你的决定。但这是一个非常好的做法,因为它对每个人来说都更干净。

于 2017-09-09T06:54:46.347 回答