我正在使用 hibernate 模式运行 Web 应用程序并卡在这个异常中。有什么帮助吗?
java.lang.ClassNotFoundException: org.hibernate.HibernateException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) at com.forum.dao.TopicDAO.findAll(TopicDAO.java:43) at com.forum.servlets.Accueil.doGet(Accueil.java:23) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at 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 库:
最佳答案
解释:
ClassDefNotFound 异常意味着您的程序无法 从引用的库中找到所需的 .class 文件。
在您的情况下,hibernateX.jar 文件未打包在您的 war 文件。
你需要做的是将它添加到你的
WEB-INF/lib
文件夹中 war 文件。
解决方案(使用 IntelliJ):
打开项目结构
从左侧选项中选择 Artifacts
从 OutputLayout 选项卡中的 war 文件浏览到
WEB-INF/lib
将包含hibernateX.jar的库添加到文件夹中
重新部署您的项目。
解决方案(使用 Eclipse):
- 只需将 jar 拖放到
WEB-INF/lib
关于hibernate - java.lang.ClassNotFoundException : org. hibernate .HibernateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18188542/