@EJB不工作

问题描述:

我有这段代码作为登录页面 我使用Netbeans,所以我从我的数据库生成实体,然后生成(从我的实体类会话bean),一切工作正常... 现在我需要jsp登录页面这是代码@EJB不工作

--the jsp页面很简单,在这里它

<jsp:useBean id="loginBean" scope="page" class="Facades.loginBean"/> 
<jsp:setProperty name="easyBean" property="*"/> 
<form id="signInForm" action="" method="post"> 
    <label>E-Mail:</label> 
    <input id="email" type="text" name="tryUsername" placeholder="enter your username" /><br> 
    <label>Password:</label> 
    <input id="password" type="password" name="tryPassword" placeholder="enter password" /><br> 
    <jsp:getProperty name="easyBean" property="result"/> 
    <input class="btn btn-default " type="submit" value="sign in "/> 
</form> 

--loginBeans代码没有问题,是我的问题:(

public class loginBean implements java.io.Serializable { 

    /*here is session bean generated from database entity*/ 
    @EJB 
    private ServerFacade serverFacade; 
    private String tryUsername, tryPassword, result; 

    public EasyBean() { 
     tryUsername = ""; 
     tryPassword = ""; 
     result = ""; 
    } 

    /*getters and setters for username and password*/ 
    public String getResult() { 
     if (serverFacade != null) { 
      result = serverFacade.tryLogin(tryUsername, tryPassword); 
      return result; 
     } else { 
      return "null serverFacade"; 
     } 
    } 

    public void setResult(String result) { 
     this.result = result; 
    } 

} 

在服务器外观我添加了tryLogin方法,它也是工作

问题是我的页面总是给我(“null serverFacade”)我无法正确初始化serverFacade,我不能注入它@EJB它保持空!

它为什么保持NULL? 任何一个可以帮我请:/

+0

你有没有添加beans.xml的文件? – TMtech

+0

我以为NetBeans自动添加它..,但我找不到它!有什么建议? –

+0

请向我们展示EJB类/接口本身。你正在使用哪个EJB容器? – fg78nc

我发现,使用@EJB我需要查找它 这样的代码:

ServerFacade serverFacade = lookupServerFacadeBean(); 
private ServerFacade lookupServerFacadeBean() { 
    try { 
     Context c = new InitialContext(); 
     return (ServerFacade) c.lookup("java:global/Kerberos/ServerFacade!Facades.ServerFacade"); 
    } catch (NamingException ne) { 
     Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne); 
     throw new RuntimeException(ne); 
    } 
}