如何访问作为jboss共享库

时间:2016-02-13 03:47:09

标签: java maven jboss cdi

我必须在我的耳朵应用程序中使用jboss共享库中存在的应用程序范围的cdi bean。

示例:

jboss\modules\com\test\test.jar

在test.jar中我有一个应用程序范围的bean

@ApplicationScoped

public class Test {

    @Inject
    SomeClass someClass;

    @PostConstructor
    public void init() {
        someClass.doSomething();
    }

    public void testMethod() {
    }
}

myapp.ear→ejb.jar

在ejb.jar中,我有一个初始化Test应用程序作用域bean的类。

public class Another {

    @Inject
    Test test;

    public void myMethod() {
        test.testMethod();
    }
}

当我测试这个例子时,我会得到空指针异常,因为我试图注入一个在耳朵应用程序外面的应用程序范围的bean。

注意:我的ear lib目录中没有test.jar,根据我的要求,它将作为jboss共享库提供。

如何访问应用程序范围的bean?

1 个答案:

答案 0 :(得分:0)

将beans.xml添加到test.jar的META-INF目录中。在这种情况下,容器将扫描test.jar文件以获取CDI bean。 你得到NPE也很奇怪。如果没有找到注入的bean,你会得到“不满意的依赖”。可能你错误​​地实例化了测试bean。例如,通过New运算符。