2013-07-09 39 views
0

我的JSF頁面:注入CDI豆返回NULL值

<h:form> 
    <p> 
     <h:outputLabel for="phone">Phone: <h:message class="alert" for="phone"/> 
      <h:message class="alert" for="phoneLogin"/> 
     </h:outputLabel> 
     <p:inputText id="phone" value="#{userBean.mobile_phone}"> 
      <f:validator validatorId="phoneValidation"/> 
     </p:inputText> 
     <p:watermark for="phone" value="+79123456789"/> 
    </p> 
    <p> 
     <h:outputLabel for="password"> 
      Password: <h:message class="alert" for="password"/> 
     </h:outputLabel> 
     <p:password id="password" value="#{userBean.password}"> 
      <f:validator validatorId="passValidation"/> 
     </p:password> 
    </p> 
    <p style="text-align: center"> 
     <p:commandButton id="phoneLogin" update="@form" binding="#{dataBean.phoneLogin}" 
         value="Login" action="#{dataBean.loginProfile}"/> 
    </p> 
</h:form> 

UserBean代碼:

import javax.enterprise.context.SessionScoped; 
import javax.inject.Named; 
import java.io.Serializable; 

@Named 
@SessionScoped 
    //user data. getters and setters 

DataBean代碼:

import javax.ejb.EJB; 
import javax.ejb.Stateless; 
import javax.inject.Inject; 
import javax.inject.Named; 

@Named 
@Stateless 
public class DataBean{ 

@Inject 
private UserBean userBean; 
//class logic 

當我按下按鈕,我應該是通過loginProfile方法在DataBean類中登錄。但@Inject註釋返回null值,我得到一個NullPointerException。所有進口都可以。我只使用CDI bean,我真的不理解爲什麼我無法從UserBean類中獲取值。我希望有人能幫助我。

+0

是你的DataBean在同一場戰爭? –

+0

@SazzadurRahaman Nope – rubaka

+0

在JEE 6中,你可以打包ejb的戰爭。這應該可以解決你的問題。 –

回答

1

如果程序無法正常工作,但您確定一切正常。嘗試清理目標目錄並再試一次。它爲我工作。

+0

你是說你的問題的解決方案是做一個乾淨的構建? – ChrisF

+0

@ChrisF是的。我不能相信我改變了一個多小時的代碼,問題在於:(非常難過。 – rubaka

+0

非常好!這對我有效(我使用Netbeans + TomEE),謝謝 –