wildfly10中JMS队列的JNDI名称格式

Hit*_*uge 8 jms wildfly wildfly-10 jms-queue

嗨我从JBoss_6.1.0_final迁移到wildfly 10.

在JBoss for Queue名称中,格式如下

<queue name="TEST_QUEUE">
  <entry name="/queue/TEST_QUEUE"/>
</queue>
Run Code Online (Sandbox Code Playgroud)

并在MDB注释中

@ActivationConfigProperty(propertyName = "destination",
                propertyValue = "queue/TEST_QUEUE")
Run Code Online (Sandbox Code Playgroud)

现在在野生蝇类如下.参考链接

<jms-queue name="TEST_QUEUE" entries="jms/queue/TEST_QUEUE java:jboss/exported/jms/queue/TEST_QUEUE"/>
Run Code Online (Sandbox Code Playgroud)

with activationproperty

@ActivationConfigProperty(propertyName = "destination",
                        propertyValue = "jms/queue/TEST_QUEUE")
Run Code Online (Sandbox Code Playgroud)

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

<jms-queue name="TEST_QUEUE" entries="queue/TEST_QUEUE java:jboss/exported/queue/TEST_QUEUE"/>
Run Code Online (Sandbox Code Playgroud)

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

编写没有前缀的队列名称是一种好习惯 jms/

war*_*gre 2

来自 JEE JSR 部分EE.5.7.1.2 资源管理器连接工厂参考的编程接口

\n\n
\n

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

\n
\n\n

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

\n\n

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

\n