java - 给HornetQ-JMS Queue注解StatelessBean @Depends

标签 java jboss6.x hornetq

我在文件 my-hornetq-jms.xml 中有一个 JMS 队列的简单定义:

<configuration xmlns="urn:hornetq"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
      <queue name="my.test.queue">  
        <entry name="/queue/myTest"/>  
      </queue>  
</configuration>

队列已正确激活,现在我想在我的 @Stateless Bean 中添加依赖项。这个问题类似于How can I ensure that the hornet queues are there when my webapp starts in JBOSS 6.0? ,但我想用注释定义依赖关系。我试过这个(在几个排列中),但没有找到正确的方法:

@Depends(value="org.hornetq:module=JMS,type=Queue,name=my.test.queue")

我总是遇到这样的错误:

Dependency "<UNKNOWN jboss.j2ee:jar=my.war,name=MyBean,service=EJB3>"
(should be in state "Installed", but is actually in state "** UNRESOLVED Demands
'org.hornetq:module=JMS,name=my.test.queue,type=Queue' **")

顺便说一句:在 JBoss-5 中我这样定义它:@Depends(value = "jboss.messaging.destination:service=Queue,name=my.test.queue")

最佳答案

您应该能够使用这个 Bean 名称定义依赖关系:

org.hornetq:module=JMS,type=Topic,name="YOUR-TOPIC-NAME"

org.hornetq:module=JMS,type=Queue,name="YOUR-TOPIC-NAME"

有关更多信息,请查看 org.hornetq.api.core.management.ObjectNameBuilder 的实现,因为部署人员使用此处的方法来定义名称。

此外:MBean 之间的这种依赖性仅适用于 AS6 或 EAP 5.1.1+。这不适用于 AS5 或任何其他手动安装,因为 AS 部署程序未安装在手动安装中。

此外:AS7 具有不同的注入(inject)依赖性。这也可能不适用于 AS7。 (我相信这不是必需的,因为您可以直接注入(inject) JNDI 名称。即它在 AS7 中以更好的方式完成)

关于java - 给HornetQ-JMS Queue注解StatelessBean @Depends,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6774292/

相关文章:

java - 在 Angular + Spring Security 应用程序中找不到错误

Java 堆大小因 Infinispan 缓存而变得太大

jms - HornetQ JMSException : Failed to create session factory

java - 向 Runtime.getRuntime() 添加参数?

java - 如何让JavaCompiler使用提供的classLoader来查找类?

serialization - Java 7 迁移 - 新的 JBoss 序列化相关异常

java - HornetQ JMS : Configure max-delivery-attempts in Java code

java - 对于 HornetQ 有效 "protocols"

java - 空白图像(帧缓冲区)

java - JBoss7 如何添加外部资源文件夹?