我查看了SO建议的线程但是无法通过以下配置传递JNDI查找阶段。
我的HornetQ conf。就是这个。
<?xml version="1.0" encoding="UTF-8"?>
<messaging-deployment xmlns="urn:jboss:messaging-deployment:1.0">
<hornetq-server>
<connection-factory name="ConnectionFactory">
<connectors>
<connector-ref connector-name="in-vm"/>
</connectors>
<entries>
<entry name="java:/ConnectionFactory"/>
</entries>
<consumer-window-size>0</consumer-window-size>
<retry-interval>1000</retry-interval>
<retry-interval-multiplier>1.5</retry-interval-multiplier>
<max-retry-interval>60000</max-retry-interval>
<reconnect-attempts>1000</reconnect-attempts>
</connection-factory>
<!--the queue used by the example-->
<jms-destinations>
<jms-queue name="test4">
<entry name="jms/queue/test4"/>
<entry name="java:jboss/exported/jms/queue/test4"/>
</jms-queue>
</jms-destinations>
</hornetq-server>
My Spring conf。文件就是这个。
<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:/ConnectionFactory" />
<property name="lookupOnStartup" value="false"/>
<property name="proxyInterface" value="javax.jms.ConnectionFactory"/>
</bean>
<bean id="myBrokerSendDestination" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jms/queue/test4</value>
</property>
<property name="resourceRef"><value>true</value></property>
</bean>
<bean id="myJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="jmsConnectionFactory" />
<property name="defaultDestination" ref="myBrokerSendDestination" />
</bean>
我无法理解JNDI语法,我尝试过很多种组合。我得到了
Caused by: javax.naming.NameNotFoundException: jms/queue/test4 -- service jboss.naming.context.java.jms.queue.test4
我在JBOSS WildFly 9中使用Arquillian部署我的EAR。我不知道Arquillian是否与此有关。但我看到成功的部署消息,但只有这个特定的错误才会失败。
更新:我已根据https://docs.jboss.org/author/display/WFLY9/Messaging+configuration
进行了修改但它仍然失败。
更新:问题似乎是hornetq-jms.xml。所以这个问题在这个时候是无法解决的。
答案 0 :(得分:0)
我认为您不需要本地JNDI中的前导java:/
:
<queue name="test4">
<entry name="queue/test4"/>
<entry name="java:jboss/exported/jms/queue/test4"/>
</queue>
答案 1 :(得分:0)
检查是否已启用远程命名:
<subsystem xmlns="urn:jboss:domain:naming:1.4">
<remote-naming/>
</subsystem>