首先,我想說我在編程時使用ejb和jsf很新,而且我試圖完成一個項目開始由我的一個朋友。 我得到一個NullPointerException,它是由調用名爲utenteSessionBean的會話bean對象的方法utenteSessionBean.CheckUtentebyId(username)引起的,它在名爲Neo4jMBean的託管bean中聲明。 我瞭解到,在託管bean中創建和初始化會話bean(正如您必須使用正常的java對象所做的)不是必需的,但足以聲明它。 這裏是會話bean,它從DB不能在我的託管bean中使用會話ejb因爲我得到空指針異常
@Stateless
@LocalBean
public class UtenteSessionBean {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("EnterpriseApplication2-ejbPU");
public boolean CheckUtentebyId(String username){
EntityManager em = emf.createEntityManager();
Query query = em.createNamedQuery("Utente.findByUsername");
query.setParameter("username", username);
List<Utente> Res=query.getResultList();
//completare funzione ctrl+spazio
System.out.println("pre");
System.out.println("pre"+Res.isEmpty());
em.close();
System.out.println("post");
System.out.println("post"+Res.isEmpty());
if(Res.size()>=1)
{
return true;
}
else
{
return false;
}
}
}
這裏檢索數據更Code的管理bean
@ManagedBean
@ViewScoped
public class Neo4jMBean {
@EJB
private UtenteSessionBean utenteSessionBean;
static String SERVER_ROOT_URI = "http://localhost:7474/db/data/";
public Neo4jMBean() {
}
public boolean getUser(String username) {
return utenteSessionBean.CheckUtentebyId(username);
}
}
我搜索StackOverflow上許多倍的解決方案,用於固定此的代碼問題,但我還沒有找到適合我的東西。
你使用Tomcat一個try-catch語句surronded ? –
我正在使用Netbeans 8.1和GlassFish服務器4 –