我升级到JBoss 7.0.1,我们正在使用以下JNDI查找来获取与HornetQ消息队列的连接。
InitialContext jndiContext = new InitialContext();
QueueConnectionFactory qf = (QueueConnectionFactory) jndiContext.lookup( "ConnectionFactory" );
当与JBoss 7一起使用时会产生NameNotFoundException
。我还尝试了以下内容:
..和其他一些人。但我认为猜测不会让我走得太远。如何获取未在控制台中记录的新JNDI名称(如我的EJB bean)?
亲切的问候, 塞巴斯蒂安
答案 0 :(得分:0)
尝试
的java:JBoss的/连接工厂
没有测试过,但是会尝试一下,因为https://docs.jboss.org/author/display/AS7/How+do+I+migrate+my+application+from+AS5+or+AS6+to+AS7说:
不合格的相对名称,例如“DefaultDS”或“jdbc / DefaultDS” 应该相对于“java:comp / env”,“java:module / env”或者 “java:jboss / env”,取决于上下文。
更正和编辑:看看我的安装并更正是:
的java:/ ConnectionFactory的
因为它也在domain.xml中定义。
答案 1 :(得分:0)
解决了它:
整个HornetQ部分默认在JBoss 7中被停用。必须将相应的部分从standalone-preview.xml
复制到standalone.xml
并将所有内容从META-INF/hornetq-jms.xml
移到JBoss配置。
现在我将ConnectionFactory配置为:
<jms-connection-factories>
<connection-factory name="InVmConnectionFactory">
<connectors>
<connector-ref connector-name="in-vm"/>
</connectors>
<entries>
<entry name="ConnectionFactory"/>
</entries>
</connection-factory>
</jms-connection-factories>
我可以通过执行此JNDI查找来使用它:
QueueConnectionFactory qf = (QueueConnectionFactory) jndiContext.lookup( "java:/ConnectionFactory" );
这是由JBoss 7的JMS配置中的bug引起的。似乎在7.0.1中修复,使用该版本,没有注意到任何修复 - 但是,上述配置有效。