簡體   English   中英

Wildfly 8.1在遠程JMS ConnectionFactory查找上引發NameNotFoundException

[英]Wildfly 8.1 throws NameNotFoundException on remote JMS ConnectionFactory lookup

我遇到的一個問題是表面上看起來非常簡單,但這使我難過了幾天。

我正在嘗試在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訪問連接工廠時(使用此提供程序url:使用jboss的http-remoting:// localhost:8080命名遠程客戶端上下文工廠)我總是得到一個找不到名字的異常。

我去打印了java:global和java:jboss的jndi綁定,如下所示:

context.listBindings("java:global"); 

在兩種情況下,我都得到此輸出

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

看起來連接工廠實際上已經建立起來,為什么查找失敗呢? 不用說,我還無法嘗試隊列本身或我實際要測試的MDB。 我以為可能是在進行如清單所示的查找時必須刪除jndi的java:部分,但它也不起作用。

如果與我的問題有關,則必須在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)

任何讀者都能提供的任何幫助將不勝感激,這使我無法勝任。

我用來連接JMS資源的String上有一個錯誤。 當JNDI處於遠程狀態時,該連接要求您刪除JNDI的java:jboss / exported部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM