首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用@Depends注释StatelessBean到HornetQ-JMS队列

用@Depends注释StatelessBean到HornetQ-JMS队列
EN

Stack Overflow用户
提问于 2011-07-21 17:57:32
回答 2查看 2.1K关注 0票数 2

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

代码语言:javascript
复制
<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?,但是我想用注解来定义依赖关系。我尝试了一下(在几种排列中),但没有找到正确的方法:

代码语言:javascript
复制
@Depends(value="org.hornetq:module=JMS,type=Queue,name=my.test.queue")

我总是得到这样的错误:

代码语言:javascript
复制
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")

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-29 18:47:20

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

代码语言:javascript
复制
import org.jboss.ejb3.annotation.Depends; //WRONG
import org.jboss.beans.metadata.api.annotations.Depends; //CORRECT
票数 1
EN

Stack Overflow用户

发布于 2011-07-22 03:13:03

您应该能够使用以下Bean名称定义依赖项:

org.hornetq:module=JMS,type=Topic,name=“您的主题名称”

org.hornetq:module=JMS,type=Queue,name=“您的主题名称”

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

另外:这种MBeans之间的依赖关系只适用于AS6或EAP 5.1.1+。这不适用于AS5或任何其他手动安装,因为在手动安装中没有安装AS部署程序。

另外: AS7有一个不同的注入依赖。这可能在AS7上也不起作用。(我认为这是不必要的,因为您可以直接注入JNDI名称。也就是说,在AS7以一种更好的方式完成)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6774292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档