Jsf 会话检索时出现空指针异常

Jsf 会话检索时出现空指针异常,jsf,jakarta-ee,jsf-2,nullpointerexception,Jsf,Jakarta Ee,Jsf 2,Nullpointerexception,我有一个问题,每当我在我的个人资料页面上通过惰性加载程序第三次调用getStatusList()时,user1.getEmail()会给我空指针异常。我认为user1无法从frienddet获取用户对象,是否有我遗漏的内容。如果有人能指出我的错误,我将不胜感激 public List<Status> getStatusList() { EntityManager em; EntityManagerFactory emf = Persistence

我有一个问题,每当我在我的个人资料页面上通过
惰性加载程序第三次调用
getStatusList()
时,
user1.getEmail()
会给我
空指针异常。我认为
user1
无法从
frienddet
获取用户对象,是否有我遗漏的内容。如果有人能指出我的错误,我将不胜感激

public List<Status> getStatusList() {
        EntityManager em;
        EntityManagerFactory emf = Persistence
                .createEntityManagerFactory("FreeBird");
        em = emf.createEntityManager();

        FacesContext context = FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
        User user1 = (User) session.getAttribute("frienddet");
            System.out.println(user1.getEmail());
        // some codes


    }
public List getStatusList(){
实体管理器;
EntityManagerFactory emf=持久性
.CreateEntityManager工厂(“FreeBird”);
em=emf.createEntityManager();
FacesContext context=FacesContext.getCurrentInstance();
HttpSession会话=(HttpSession)context.getExternalContext().getSession(true);
User user1=(User)session.getAttribute(“frienddet”);
System.out.println(user1.getEmail());
//一些代码
}
编辑


在对
getStatusList()
进行了几次调用之后,frienddet
被从会话中删除,但我不知道为什么会发生这种情况,我没有用我的代码从会话中删除任何属性。

您的调用
会话。getAttribute(“frienddet”)
返回空值,因为
“frienddet”
未初始化(我猜可能是初始化为空)


查看您的代码,您实际上并没有使用实体管理器(我假设这在下面省略的代码中)。因此,您需要查看会话中的
“frienddet”
放置位置,并找出其为空的原因。如果跳转到调试器(我非常推荐),您应该会看到会话对象缺少一个键/值对或一个null键。

Javascript!=Java,不要将其标记为Javascript问题当您使用Java时,我在调试器中将其签出,密钥为null。我还是不明白为什么前两次能用。你需要找的是钥匙放在哪里。很可能是在另一个请求中。“frienddet”在哪里?这就是问题所在。