gpt4 book ai didi

jboss - 通过 JNDI 使用 HornetQ ConnectionFactory 以 EAR 启动 JBoss 时出现 NameNotFoundException

转载 作者:行者123 更新时间:2023-12-02 17:47:55 25 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

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

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

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

<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/

关于jboss - 通过 JNDI 使用 HornetQ ConnectionFactory 以 EAR 启动 JBoss 时出现 NameNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12249491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com