Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
服务外部注入的javax.annotation.Injected始终为空_Java_Dependency Injection_Wildfly_Java Ee 8 - Fatal编程技术网

服务外部注入的javax.annotation.Injected始终为空

服务外部注入的javax.annotation.Injected始终为空,java,dependency-injection,wildfly,java-ee-8,Java,Dependency Injection,Wildfly,Java Ee 8,我有一个WildFly服务器(没有Spring),其中一个类需要注入。大概是这样的: class Foo { @Inject private MyInterface myInterface; ... } 但是,每次创建类时,myInterface都为空。类Foo不是在任何服务类内创建的,而是从服务类进行调用。要简化: 服务调用(特定于wsdl)→ 调用来自其他类的静态方法→ 该方法创建Foo 实现MyService的类用@Named和@ApplicationScoped

我有一个WildFly服务器(没有Spring),其中一个类需要注入。大概是这样的:

class Foo {
    @Inject
    private MyInterface myInterface;
    ...
}
但是,每次创建类时,
myInterface
都为空。类
Foo
不是在任何服务类内创建的,而是从服务类进行调用。要简化:

服务调用(特定于wsdl)→ 调用来自其他类的静态方法→ 该方法创建
Foo


实现
MyService
的类用
@Named
@ApplicationScoped
注释。当带有
MyInterface
@Inject
在服务类中时(与
Foo
中的代码完全相同),它被正确注入。但不适用于非服务类。

类Foo是CDI还是EJB?它不是EJB,所以应该是CDI,它是用@JamesR.Perkins注释的
Foo
,它没有任何注释。应该用什么东西注释吗?是的。为了使CDI正常工作,需要管理所有bean。你不能像
newfoo()
那样让CDI工作。它需要管理所有相关组件的生命周期。