【问题标题】:java.lang.ClassNotFoundException: org.hibernate.HibernateExceptionjava.lang.ClassNotFoundException: org.hibernate.HibernateException
【发布时间】:2013-08-13 20:32:52
【问题描述】:

我正在使用 hibernate 运行一个 Web 应用程序,但遇到了这个异常。请问有什么帮助吗?

java.lang.ClassNotFoundException: org.hibernate.HibernateException 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 在 com.forum.dao.TopicDAO.findAll(TopicDAO.java:43) 在 com.forum.servlets.Accueil.doGet(Accueil.java:23) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008) 在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(Unknown Source)

这里是 TopicDAO.findALL()

public static List<Topic> findAll() {

    Session  s = HibernateUtils.getSession(); //TopicDAO.java:43
    Transaction tx = s.beginTransaction();
    List<Topic> objects = null;

    Query q = s.createQuery("from Topic");
    objects = q.list();
    tx.commit();

    return objects;
}

还有,这是我的 servlet.doGet()

public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
    HttpSession session = request.getSession();

    TopicDAO td = new TopicDAO();
    List<Topic> listTopics = td.findAll();

    session.setAttribute( ATT_LIST_TOPICS, listTopics );

    this.getServletContext().getRequestDispatcher( ACCUEIL ).forward( request, response );
}

这是我添加的 Hibernate 库:

【问题讨论】:

标签: hibernate jakarta-ee tomcat servlets


【解决方案1】:

说明:

  • ClassDefNotFound 异常意味着您的程序无法 从引用的库中查找所需的 .class 文件。

  • 在您的情况下,hibernateX.jar 文件未在您的内部 打包 战争文件。

  • 你需要做的是把它添加到你的WEB-INF/lib文件夹中 战争文件。

解决方案(使用 IntelliJ):

  1. 打开项目结构

  2. 从左侧选项中选择工件

  3. 从 OutputLayout 选项卡中的 war 文件浏览到 WEB-INF/lib

  4. 将包含 hibernateX.jar 的库添加到文件夹中

  5. 重新部署您的项目。

解决方案(使用 Eclipse):

  1. 只需将 jar 拖放到WEB-INF/lib

【讨论】:

  • 我遇到完全相同的问题浪费了我一整天。但这篇文章在 5 分钟内解决了我的问题。希望我搜索得很好。
  • 请检查这个答案stackoverflow.com/a/6083776/828551它解决了我的问题,它是一样的!!
  • 在这之后我浪费了一整天,最后你救了我。非常感谢你,我向你致以最良好的祝愿。
【解决方案2】:

我看到一些库丢失了。我有这些,它工作得很好。顺便提一句。你用什么数据库? PostgreSQL?否则,您还需要包含数据库的 JDBC 驱动程序。请注意,其中一些是通过 JPA 使用休眠所必需的。

【讨论】:

    【解决方案3】:

    有时这可能是由于本地 maven 存储库中的休眠库冲突造成的。我遇到了这个问题,在尝试了这里建议的所有对我不起作用的东西之后,我不得不求助于删除 hibernate 文件夹中的所有内容,这些文件夹在我的 maven 本地存储库中包含多个 hibernate 版本。之后一切都开始对我正常工作

    【讨论】:

      【解决方案4】:

      [对于 Eclipse IDE] 我也遇到过类似的问题,我已经尝试了各种方法,从大量的 maven clean、安装和更新到切换工作区、清理类路径或切换 java 版本,但只能通过以下方式解决:

      -此异常也可能是手动创建未部署所需依赖项的 Tomcat 服务器的结果,即使当前项目中有所需的 jar。为此,您必须修复服务器的配置和引用的项目。

      Servers Properties

      Runnings configuration

      【讨论】:

        【解决方案5】:

        尝试在webContent/WEB-INF/lib 中添加 jar 文件。那应该最有可能。有时 hibernate 无法找到所需的 jar 文件。因此,您必须添加 jar 文件并为此提供正确的路径。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-23
          • 1970-01-01
          • 2013-12-08
          • 2015-01-21
          相关资源
          最近更新 更多