在 Tomcat 上部署的 WAR 中的 JPA 功能

JPA functionality in a deployed WAR on Tomcat

我正在进行一个项目,旨在允许用户将一些电影详细信息添加到数据库并显示现有电影的列表。 我已经使用 JPA 在 Eclipse 中创建了一个动态 Web 项目来与远程数据库进行通信。当我 运行 Eclipse IDE 中的项目时,所有这些工作正常但是当我将它导出到 WAR 并将其部署在 Tomcat 服务器上时,JPA 功能不再作品。抛出以下错误:

javax.servlet.ServletException: Servlet execution threw an exception
    servlets.AdminMenu.doGet(AdminMenu.java:31)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.NoClassDefFoundError: javax/persistence/Persistence
    servlets.DBOperator.getFilmList(DBOperator.java:22)
    servlets.AddFilm.doGet(AddFilm.java:28)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    servlets.AdminMenu.doGet(AdminMenu.java:31)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

我需要在导出和部署之前以某种方式打包我的 persistence.xml 等吗?

大多数 JPA 库仅适用于 J2EE 容器,例如 JBOSS、Glassfish 等...Tomcat 是 Servlet 容器而不是 J2EE 容器。您需要包含您要用作依赖项的 JPA 实现,并使用您的 WAR 部署它。