当前位置: 首页 > 知识库问答 >
问题:

如何将带有CDI的@Alternative从WAR注入JAR模块

杨研
2023-03-14

< code >转换器希望使用由< code>ConfigProducer生成的注入< code >配置。其中< code>ConfigProducer在WAR中,但< code > converter 和< code>Config在jar中。遗憾的是,似乎没有注入< code>config导致< code > javax . EJB . EJB exception:javax . persistence . persistence exception:尝试应用AttributeConverter时出错,这是由< code > converter 中的< code > NullPointerException 引起的。

我正在使用WildFly 8.1.0,它使用Weld进行CDI注入。

我是想做一些不可能的事情,还是说这是为了工作?

example.war
  - ConfigProducer.class
      @Produces Config
  - WEB-INF/beans.xml (empty <beans></beans>)
  - META-INF/persistence.xml
  - WEB-INF/lib/entities.jar
     - Config.class
     - TheConverter.class
         implements AttributeConverter
         @Inject Config <-- FAIL
     - TheEntity.class
     - META-INF/beans.xml (empty <beans></beans>)
     - META-INF/orm.xml

共有2个答案

锺离阿苏
2023-03-14

WAR 文件中的 bean.xml需要以 WEB-INF 而不是 META-INF 格式

宋英杰
2023-03-14

我不知道你到底有什么问题。但是使用生产者和注射点组合是绝对可能的。

此外,WildFly应该警告您,如果在bean发现期间出现问题。。。

也许您可以添加一些关于您的bean的更多解释。xml、生产者类和persistence.xml。

 类似资料:
  • 我想让CDI“选择”一个替代类作为接口的实现。 虽然一切都捆绑在EAR中,但是替代实现将在war文件中,其余的(注入接口的类、接口、接口的“默认”实现)将在ejb jar中。 下面是一些代码来说明: EJB 模块: 战争模块: 在战争文件中设置豆子.xml没有帮助。

  • 问题内容: 假设我有一个我没有源代码的库(或者它是用某种尚未意识到模块的非Java语言编写的)。没有,我不想将其用作自动模块,所以我想注入它。 我首先使用以下命令生成: 假设这生成了这样的内容: 然后,我尝试编译它,但是由于软件包和不存在而失败: 当然,我可以创建目录并在其中创建虚拟类,但是有更好的方法吗? 问题答案: 是的,使用该选件是可能的。此选项最常在运行时使用,但在编译时也可以使用:

  • 我和EJB 3.1有冲突,我需要在战争中使用它。JAR和WAR都单独部署在同一个JBoss上(AS 7.1)。当我在战争中给一个CDI豆注射EJB时,我得到了这个错误: 从我目前的观点来看,@Inject没有看到EJB,但是如果我使用手动JNDI查找(来自WAR),我就可以获得这个bean的实例。可以使用@inject注释从另一个JAR注入EJB吗? WAR中的类(CDIBean),它从JAR中@

  • 假设我有一个库,它没有源代码(或者它是用某种不知道模块的非Java语言编写的)。没有并且我不想将它用作自动模块,因此我想将注入到它中。 我首先使用以下命令生成: 当然,我可以创建目录和,其中包含虚拟类,但是否有更好的方法?

  • 我有一个问题是将EJB注入到抽象类中,抽象类是我JSF CDI bean的父类。在我的项目中,我使用MyFaces CODI 1.0.5(ViewScope),Omniface 1.3,PrimeFaces 3.4.2和GlassFish3.1.2。 应用程序是一个EAR,抽象类位于EJB模块中,JSF CDI bean位于WAR模块中: 我的抽象类: 我的CDIBean: 当我部署应用程序并访问

  • > DAO层类型:jar Rest服务层类型:war,依赖:DAO{scope:default,type:jar}