【问题标题】:CDI within Jboss AS7 ModuleJboss AS7 模块中的 CDI
【发布时间】:2013-12-31 11:01:04
【问题描述】:

我有一个 jar,我将其部署为 JBoss 模块,并希望将消息发送到 JMS 队列。 我尝试为 JMS 队列做 CDI,但没有成功。

我已经尝试过添加所有需要的依赖项,但没有任何效果。 这是我的 module.xml

    <module xmlns="urn:jboss:module:1.0" name="com.abc.xyz">
  <resources>
    <resource-root path="myModule.jar"/>
        <!-- Insert resources here -->
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.jms.api"/>
    <module name="org.jboss.logging"/>
    <module name="org.hornetq"/>
    <module name="javax.inject.api"/>   
    <module name="javax.annotation.api"/>
    <module name="javax.ejb.api"/>
    <module name="javax.resource.api"/>
    <module name="javax.enterprise.api"/>
    <module name="javax.interceptor.api"/>
    <module name="javax.validation.api"/>
    <module name="org.jboss.as.weld"/>  
    <module name="javax.xml.stream.api"/>
  </dependencies>
</module>

我想知道我正在尝试做的事情是否可行?如果是,那么如何:)

【问题讨论】:

  • 你在 jar 中添加了 beans.xml 吗?否则 JBoss 不会为该模块初始化 CDI。
  • 是的,我在 META-INF 目录下有 beans.xml

标签: java jboss cdi


【解决方案1】:

尝试将以下内容添加到您尝试访问模块的部署结构 XML 或模块依赖项中

<dependencies>
   <module name="org.mymodule" export="true" meta-inf="import"/>
</dependencies>

【讨论】:

  • 如果您使用的是 EAP 6.1 或 JBoss AS 7.2 或更高版本,则此方法有效。它在 7.1.x 中不起作用,这在那些版本中是不可能的。
  • 好的,感谢您的澄清...我使用的是 EAP6.1,没有进行其他检查。
  • @JanGalinski,让我解释一下。该模块是一个日志处理程序,没有任何组件将其作为依赖项。就在有人执行 logger.log() 时,我的 jboss 模块拦截它并将消息发送到 JMS 队列。所以添加部署结构是行不通的。
猜你喜欢
  • 1970-01-01
  • 2013-11-01
  • 2013-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
相关资源
最近更新 更多