当前位置: 首页 > 知识库问答 >
问题:

服务层EJB空指针异常

谷梁翰飞
2023-03-14

我有一个postConstruct方法:

@EJB
private VisitServiceLocal visitService;

@PostConstruct
void init() {
    eventModel = new DefaultScheduleModel();
    visits = getDoctorVisits();
}

方法:

public List<Visit> getDoctorVisits() {
    doctorId = (Integer) session.getAttribute("userId");
    return visitService.findMyVisits(doctorId);
}

VisitService:

@Override
public List<Visit> findMyVisits(Integer myId) {
    return visitDao.findMyVisits(myId);
}
@Override
public List<Visit> findMyVisits(Integer myId) {
    currentDate = new Date();
    try {
        Query q = em.createQuery("SELECT v FROM Visit v WHERE v.doctorId.id = :myId and v.visitStart > :currentDate");
        q.setParameter("myId", myId);
        q.setParameter("currentDate", currentDate);
        List<Visit> visits = q.getResultList();
        return visits;
    } catch (Exception e) {
        System.out.println("Błąd: " + e.getMessage());
        return null;
    }
}

方法:

public List<Visit> getDoctorVisits() {
    doctorId = (Integer) session.getAttribute("userId");
    return visitDao.findMyVisits(doctorId);
}

为什么添加服务层会产生此错误?在服务层,我只导致dao方法

共有1个答案

程禄
2023-03-14
Caused by: java.lang.NullPointerException
    at pl.ePrzychodnia.dao.serviceClass.VisitService.findMyVisits(VisitService.java:89) at 

你曲解了问题。问题不在JSF方面。问题出在EJB端。visitservice已正确注入,但在visitservice本身内,visitdao未正确注入。

您没有显示所有代码,但很可能有一个

@Stateless
public class VisitService implements VisitServiceLocal {

    private VisitDao visitDao;

    @Override
    public List<Visit> findMyVisits(Integer myId) {
        return visitDao.findMyVisits(myId);
    }

}

在这种情况下,您也需要在那里注入它:

@Stateless
public class VisitService implements VisitServiceLocal {

    @EJB
    private VisitDao visitDao;

    @Override
    public List<Visit> findMyVisits(Integer myId) {
        return visitDao.findMyVisits(myId);
    }

}
 类似资料:
  • 我试图开发一个web服务应用程序,该应用程序在web服务类中使用EJB函数,但EJB对象在运行时为空。 我正在使用Spring Application Context配置Web服务。它有什么问题吗? 代码: 网状物xml 豆。xml ejb ojbect为空的原因是什么?它是否与CreditCardService类的Spring DI有关,但没有实例化ejb对象? CXF servlet的用途是什

  • 问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于

  • 我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db

  • 问题内容: 我正在学习EJB,并且试图执行EJB In Action书中给出的Helloworld示例。 我的应用程序服务器是JBoss,我在正确的目录中为bean类和接口创建了Jar文件(我可以在JMX控制台中看到EJB)。 现在,我使用EJB注释创建了一个简单的客户端,但是我遇到了NullPointerException。 这是我的客户代码。 客户代码: EJB 接口 注意:我尝试使用将接口指

  • 当我试图从DB查询结果时,我得到一个空指针异常。以下是错误: 这是错误产生的函数。 如果我启动应用程序信息服务(=new ApplicationInfoService()),我会得到一个指向我的服务类的空指针错误,在这里进行查询 错误转到createQuery行,如果我打印出EntityManager,它将返回“null”。为什么我的Entitymanager不能初始化。我在我的登录系统中使用了几

  • 问题内容: 嗨,我们一直在使用apache编写我们的Java程序来读取xls和xlsx文件,问题是我们由于两个原因而得到了空指针异常。第一个是已经解决的空白单元格,另一个是当我们选择一个没有任何记录的列。 我们的程序要求输入excel文件的路径,然后输入要读取的文件的特定工作表号和特定的工作表的列号。这是读取xls文件的代码 变量工作表名称用于excel文件的工作表编号 变量cols用于您要阅读的