【问题标题】:error with jpa, tomcat and servlets [duplicate]jpa、tomcat 和 servlet 出错 [重复]
【发布时间】:2015-12-31 02:54:50
【问题描述】:

我也尝试在我的 Java Web 应用程序中使用 JPA 与 tomcat 和 servlet,但是当我尝试在我的 servlet 中使用 JPA 时会发生此错误:

java.lang.ClassNotFoundException: javax.persistence.Persistence
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    at com.vorms.controller.NewForm.s(NewForm.java:37)
    at com.vorms.controller.NewForm.service(NewForm.java:66)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

但是,当我在普通类 java 中使用相同的代码并使用 java 应用程序运行它时,它运行完美。 Obs:我有罐子的。

我的测试代码是这样的:

Usuario u = new Usuario("lara", "l@gmail.com", "123");
        EntityManagerFactory factory = Persistence.createEntityManagerFactory("unitvorms");
        EntityManager manager = factory.createEntityManager();
        manager.getTransaction().begin();
        manager.persist(u);
        manager.getTransaction().commit();
        manager.close();
        factory.close();

我也在使用 Mysql 和 eclipse。任何人都可以帮助我吗?呸呸呸

【问题讨论】:

    标签: java mysql tomcat servlets jpa


    【解决方案1】:

    您似乎已将所需的 jars 添加到 Eclipse 项目的构建路径,但尚未使它们可用于您的 Web 应用程序。

    您需要将 JPA jar (persistence.jar) 及其实现(如 eclipselink.jar)及其依赖项放置到 Web 应用程序的 /WEB-INF/lib 目录或 {TOMCAT_HOME}/lib(如果您想在多个应用程序之间共享它们) JPA Web 应用程序部署在同一台服务器上。

    查看此EclipseLink-JPA-Tomcat 教程以供进一步参考。

    【讨论】:

      猜你喜欢
      • 2016-10-24
      • 1970-01-01
      • 2012-07-06
      • 2017-02-02
      • 2015-07-12
      • 2021-05-11
      • 2010-10-21
      • 2016-06-09
      • 1970-01-01
      相关资源
      最近更新 更多