2015-02-24 85 views
0

我遇到了一個問題,即表面上看起來很簡單,但這讓我難倒了幾天。Wildfly 8.1在遠程JMS ConnectionFactory查找中拋出NameNotFoundException

我想對Wildfly 8.1.0具有以下JNDI名稱部署服務器上的JMS連接工廠和隊列:

java:jboss/exported/jms/UnicsRetry for the connection factory 
java:jboss/exported/queue/Create for the queue 

這是我的配置XML位爲這兩種成分,並從我已經能夠從文檔收集,它看起來是正確的:但是當我試圖訪問

<connection-factory name="UnicsJmsSource"> 
     <connectors> 
      <connector-ref connector-name="http-connector"/> 
     </connectors> 
     <entries> 
       <entry name="java:jboss/exported/jms/UnicsRetry"/> 
     </entries> 
    <compress-large-messages>false</compress-large-messages> 
    <failover-on-initial-connection>false</failover-on-initial-connection> 
    <use-global-pools>true</use-global-pools> 
</connection-factory> 

<jms-queue name="CreateQueue"> 
    <entry name="java:jboss/exported/queue/Create"/> 
    <durable>true</durable> 
</jms-queue> 

Wildfly本身接受這些並順利啓動(使用命令行獨立,完整的XML)通過JNDI連接工廠(提供這個r url:http-remoting:// localhost:8080使用jboss命名遠程客戶端上下文工廠)我總是得到一個名稱未找到的異常。

我去打印出來爲Java的JNDI綁定:全球和Java:JBoss的,像這樣:

context.listBindings("java:global"); 

而在這兩種情況下我得到這個輸出

jboss/exported/jms/UnicsRetry -- service jboss.naming.context.java.jboss.exported.jboss.exported.jms.UnicsRetry 

它看起來像連接工廠實際上是綁定的,那麼爲什麼查找失敗?不用說,我還沒有能夠嘗試隊列本身或我真正想測試的MDB。我認爲這可能是因爲我不得不在清單顯示的查找時刪除java:jndi的一部分,但它也不起作用。

如果有任何與我的問題,我不得不忍受這些依賴於我的pom.xml建立我的測試客戶端:

<dependency> 
    <groupId>org.jboss</groupId> 
    <artifactId>jboss-remote-naming</artifactId> 
    <version>2.0.1.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.jboss.xnio</groupId> 
    <artifactId>xnio-nio</artifactId> 
    <version>3.3.0.Final</version> 
</dependency> 

這是一個完整的堆棧跟蹤我得到的,無論從獨立客戶端和Mule JMS連接器。

Exception in thread "main" javax.naming.NameNotFoundException: jboss/exported/jms/UnicsRetry -- service jboss.naming.context.java.jboss.exported.jboss.exported.jms.UnicsRetry 
    at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:104) 
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:202) 
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:179) 
    at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:127) 
    at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.java:73) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

任何幫助,任何一種閱讀器可以提供將不勝感激,這有我拉我的頭髮。

回答

0

這是我用來連接到JMS資源的字符串的錯誤。當JNDI是遠程的時候,連接要求你刪除JNDI的java:jboss/exported部分。

相關問題