2017-09-05 41 views
8

您好我正在從JBoss_6.1.0_final遷移到wildfly 10。wildfly10中的JMS隊列的JNDI名稱格式

在JBoss中爲隊列名稱的格式是這樣

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

和MDB註釋是

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

現在wildfly其像的下方。 reference link

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

與activationproperty

@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/

回答

0

從JEE JSR部分EE.5.7.1.2編程接口資源管理器連接工廠引用

本規範推薦,但並不要求所有資源管理器連接工廠引用都應用程序組件環境的子環境中組織,對每種資源管理器類型使用不同的子環境。例如,應在java:comp/env/jdbc子上下文,java:comp/env/jms子上下文中的所有JMS連接工廠,以及java:comp/env/mail中的所有JavaMail連接工廠中聲明所有JDBC™DataSource引用子上下文以及java:comp/env/url子上下文中的所有URL連接工廠。注意通過註解聲明的資源管理器連接工廠引用不會,默認情況下,出現在任何子上下文

jms子上下文是不是強制性的。這只是一個最佳實踐。

服務器可以或不可以遵循這種模式。 JBoss並沒有遵循這個規定,野蠻人是,但最終,你決定做你想做的事情。但這是一個非常好的做法,因爲它對每個人都更清潔。