Java PersistanceUnit注释不注入

Java PersistanceUnit注释不注入,java,jpa,Java,Jpa,我有一个关于教育的小项目。jpaservlet-JSP。现在我想使用PersistanceUnit注释: public class UsersListServlet extends HttpServlet { @PersistenceUnit private EntityManagerFactory emf; protected void processRequest(HttpServletRequest request, HttpServletResponse re

我有一个关于教育的小项目。jpaservlet-JSP。现在我想使用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");
    }
但我在尝试emf.createEntityManager时看到了NPE; My persistence.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>


你用的是哪个集装箱?您是否在此容器中定义了jta数据源JDBC/_地址簿?

请尝试添加@PersistenceUnitname=AdressBookPU,不要通过EMF访问。让您的私有var EntityManager em直接使用。希望有帮助。我更新了我的问题。NPE…UsersListServlet是注入的还是仅仅是一个常规类?只是一个类,有问题的是,您看到的所有列表都没有导入和实现的方法,并且没有这个注释@WebServletname=UsersList,urlPatterns={/UsersList}
@PersistenceContext(unitName = "AdressBookPU")
private EntityManager em;
@PersistenceUnit(unitName="AdressBookPU")
private EntityManagerFactory emf;