会话检索的nullpointer异常

时间:2013-07-13 14:12:45

标签: jsf java-ee jsf-2 nullpointerexception

我遇到问题,每当我第三次通过个人资料页面上的getStatusList()致电Lazy loader时,user1.getEmail()正在给我nullpointer exception。我认为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


    }

修改

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

1 个答案:

答案 0 :(得分:1)

您的调用session.getAttribute("frienddet")返回null,因为"frienddet"未初始化(我猜测,可以将其初始化为null)。

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