1

我目前正在尝试在 JBoss 6.1 上部署一个应用程序,其中包含一些 JMS MessageListeners。MessageListeners 通过JNDI(使用 Spring)获取连接工厂,我使用的HornetQ是名为ConnectionFactory. 我目前只使用以以下开头的默认JMS Queues值:和JBossDLQExpiryQueue

当我通过应用程序部署时,JMX启动没有问题。

当我通过将应用程序复制到部署目录进行部署并启动服务器时,应用程序将无法启动并给出以下错误消息:javax.naming.NameNotFoundException: ConnectionFactory not bound. 这对我来说意味着该应用程序在启动之前HornetQ启动并且可以通过JNDI.

我已经研究过使用创建依赖项,jboss-dependency.xml但是我无法让它工作,我不确定这是否是正确的方法。

如何确保HornetQ在我的应用程序之前启动?

4

1 回答 1

5

我昨天遇到了这个问题,这个问题是JBoss在注册ConnectionFactory和Queues之前启动你的应用程序引起的。

我发现我的应用程序完美地从 Eclipse 部署,它一直等到 JBoss 启动后才部署。

解决方案是修改文件,在bean 中server/{node}/deploy/jbossweb.sar/META-INF/jboss-beans.xml添加以下内容。WebServer

<depends>org.hornetq:module=JMS,name="NettyConnectionFactory",type=ConnectionFactory</depends>
<depends>org.hornetq:module=JMS,name="InVMConnectionFactory",type=ConnectionFactory</depends>  
<depends>org.hornetq:module=JMS,name="NettyThroughputConnectionFactory",type=ConnectionFactory</depends>

这对我有用,我在这里找到了解决方案:http: //edemmorny.com/2011/10/17/jboss-as-6-startup-connectionfactory-not-bound/

于 2012-09-05T09:57:32.767 回答