Java @注入注释无效
我第一次尝试使用CDI。虽然我已经使用@EJB成功地将一个EJB注入到另一个EJB中,但是@Inject注释无法工作Java @注入注释无效,java,jboss,cdi,Java,Jboss,Cdi,我第一次尝试使用CDI。虽然我已经使用@EJB成功地将一个EJB注入到另一个EJB中,但是@Inject注释无法工作 @Stateless public class AccountDaoImpl implements AccountDAO { @Inject private MultiTenantEntityManagerImpl mtem; //always null } 多租户实体管理器如下所示: @Default public class MultiTenantEn
@Stateless
public class AccountDaoImpl implements AccountDAO {
@Inject
private MultiTenantEntityManagerImpl mtem; //always null
}
多租户实体管理器如下所示:
@Default
public class MultiTenantEntityManagerImpl {
.....
}
我创建了一个beans.xml文件(空),但将其插入到构建jar文件的META-INF文件夹中。还是没有快乐
我相信这很简单。我正在运行JBoss5.0.1.GA
更新
因此,JBoss5似乎不支持@Inject注释
另一种方法是使用@EJB注释,但这也不起作用:
@Stateless
public class AccountDaoImpl implements AccountDAO {
@EJB
private MultiTenantEntityManager mtem; //still null!
}
奇怪的是,在另一个EJB中,实体管理器的这种精确声明工作正常 看起来,至少在jboss 5中,@EJB注释只有在以下两个条件都成立的情况下才会得到尊重:
在我的例子中,我在单机版中缺少子系统
除非我弄错了,否则CDI是jboss 5.0.1.GA不支持的Java EE 6的一部分。您使用的是哪个版本的Java EE?啊!所以我一直在用头撞砖墙。我的选择是什么?您可以使用Spring或Guice进行注入,只需依赖EJB进行服务、远程处理和事务。。。但这可能会变得混乱,所以最好只使用最新版本。