我想弄清楚如何在我的應用程序中設置服務/ Dao層。我發現幾十種資源都以不同的方式如何做到這一點,並決定遵循這裏找到的模型:How should EntityManager be used in a nicely decoupled service layer and data access layer?@EJB workflowDao在服務層爲空
我不明白我錯過了什麼導致這個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),所以如果這看起來非常錯誤,請記住這一點。
哪一行引發空指針異常? – mightyrick 2013-02-13 19:33:43