我试图弄清楚如何在我的应用程序中设置服务/道层。我找到了几十个资源,它们都有不同的方法,并决定遵循这里找到的模型:EntityManager 应该如何在良好解耦的服务层和数据访问层中使用?
我无法弄清楚导致此 NPE 的原因是什么。
用法:
@Path("/helloworld")
public class MyController {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String TestRequest() {
Workflow workflow = new Workflow();
workflow.setName("test");
WorkflowService workflowService = new WorkflowService();
workflowService.save(workflow);
return "Workflow ID:";
}
}
我的道:
@Stateless
public class WorkflowDao {
@PersistenceContext(unitName = "unit")
private EntityManager entityManager;
public int save(Workflow workflow) {
entityManager.persist(workflow);
return workflow.getId();
}
}
我的服务:
@Stateless
public class WorkflowService {
@EJB
WorkflowDao workflowDao;
public int save(Workflow workflow) {
int id = workflowDao.save(workflow); //throws NullPointerException because workflowDao is null
return id;
}
}
这是我第一次设置 Java 项目(之前只在 1 上工作过,并且使用了 Spring),所以如果这看起来非常错误,请记住这一点。