2017-06-13 29 views
-1

我有這段代碼作爲登錄頁面 我使用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

回答

0

我發現,使用@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); 
    } 
}