我有一个.ear导入.jar和.war模块。我试图在jar中存在的war上注入一个EJB,当我调用它时,我得到一个空指针异常。这是代码。
此属性"私有AutenticacaoBean authBean;"得到一个空指针异常。我不知道我是否需要在任何地方使用@remote,因为我使用不同的软件包,但是在同一个耳朵里。
public class LoginController extends AbstractController {
@EJB
private AutenticacaoBean authBean;
public void execute() {
//code
}
}
@Stateless
@LocalBean
public class AutenticacaoBean {
@EJB
private UsuarioDAO usuarioDao;
//code
}
@Stateless
public class UsuarioDAOImpl implements UsuarioDAO {
public UsuarioDAOImpl() {
//code
}
//code
}
@Local
public interface UsuarioDAO {
//code
}
任何帮助都会很棒。谢谢你的时间!
答案 0 :(得分:0)
EJB 3.1删除了对本地接口的要求,并且您使用的是没有接口的AutenticacaoBean,但是您的Application Server可能不符合EJB 3.1,并且您无法以这种方式执行注入:
@EJB
private AutenticacaoBean authBean;
您可以尝试使用所需的方法为AutenticacaoBean
创建一个界面(例如AutenticacaoLocal),然后将此注释添加到LoginController
中:
@EJB
private AutenticacaoLocal authBean;
正如您对UsuarioDAOImpl
所做的那样。