EJB注入返回null异常

时间:2015-09-19 20:39:17

标签: java java-ee ejb javabeans

我有一个.ear导入.jar和.war模块。我试图在jar中存在的war上注入一个EJB,当我调用它时,我得到一个空指针异常。这是代码。

WAR PACKAGE

控制器

此属性"私有AutenticacaoBean authBean;"得到一个空指针异常。我不知道我是否需要在任何地方使用@remote,因为我使用不同的软件包,但是在同一个耳朵里。

public class LoginController extends AbstractController {

    @EJB
    private AutenticacaoBean authBean;

    public void execute() {
        //code
    }
}

JAR PACKAGE

@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
}

任何帮助都会很棒。谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

EJB 3.1删除了对本地接口的要求,并且您使用的是没有接口的AutenticacaoBean,但是您的Application Server可能不符合EJB 3.1,并且您无法以这种方式执行注入:

@EJB
private AutenticacaoBean authBean;

您可以尝试使用所需的方法为AutenticacaoBean创建一个界面(例如AutenticacaoLocal),然后将此注释添加到LoginController中:

@EJB
private AutenticacaoLocal authBean;

正如您对UsuarioDAOImpl所做的那样。