2

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

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

队列已正确激活,现在我想在我的@StatelessBean 中添加一个依赖项。这个问题类似于我的 webapp 在 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")

4

2 回答 2

3

您应该能够使用此 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 有不同的注入依赖。这也可能不适用于 AS7。(我相信这不是必需的,因为您可以直接注入 JNDI 名称。即在 AS7 以更好的方式完成)

于 2011-07-21T19:13:02.797 回答
1

出现上述错误是因为我输入了错误@Depends

import org.jboss.ejb3.annotation.Depends; //WRONG
import org.jboss.beans.metadata.api.annotations.Depends; //CORRECT
于 2011-07-29T10:47:19.627 回答