我遇到了一个问题,即表面上看起来很简单,但这让我难倒了几天。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)
任何帮助,任何一种阅读器可以提供将不胜感激,这有我拉我的头发。