2
我有一個小型的教育項目。 JPA,Servlet的JSP。現在我想用PersistanceUnit註釋:PersistanceUnit註釋不注入
public class UsersListServlet extends HttpServlet {
@PersistenceUnit
private EntityManagerFactory emf;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
EntityManager em = null;
try {
em = emf.createEntityManager();
//query for all the persons in database
List persons = em.createQuery("select u from Users u").getResultList();
request.setAttribute("usersList",persons);
//Forward to the jsp page for rendering
request.getRequestDispatcher("UsersList.jsp").forward(request, response);
} catch (Exception ex) {
throw new ServletException(ex);
} finally {
//close the em to release any resources held up by the persistebce provider
if(em != null) {
em.close();
}
}
response.setContentType("text/html;charset=UTF-8");
}
但我看到NPE時嘗試emf.createEntityManager();
我persistance.xml:
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="AdressBookPU">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/__adressbook</jta-data-source>
<class>com.prokopenko.adressbook.entity.Users</class>
<class>com.prokopenko.adressbook.entity.MobilePhone</class>
</persistence-unit>
</persistence>
它是一個Maven項目和persistance.xml位於的src/main /資源/ META-INF(如j2ee7教程)。 UPDATE 嘗試:
@PersistenceContext(unitName = "AdressBookPU")
private EntityManager em;
和
@PersistenceUnit(unitName="AdressBookPU")
private EntityManagerFactory emf;
嘗試添加@PersistenceUnit(name =「AdressBookPU」)並且不通過EMF訪問。製作你的私有var EntityManager並直接使用。希望能幫助到你。 – onesixtyfourth
我更新我的問題。 NPE ... – bearhunterUA
是'UsersListServlet'注入還是隻是一個普通類? – Priyesh