java.lang.ClassNotFoundException:org.hibernate.HibernateException [英] java.lang.ClassNotFoundException: org.hibernate.HibernateException
问题描述
我正在用hibernate运行一个Web应用程序,并陷入了这个异常。 ?任何帮助,请
抛出java.lang.ClassNotFoundException:在org.apache.catalina.loader org.hibernate.HibernateException
。 WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at com.forum.dao.TopicDAO.findAll(TopicDAO。的java:在com.forum.servlets.Accueil.doGet(Accueil.java:23 43)
)
。在javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
在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(斯坦
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:dardContextValve.java:123)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)$ b在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
$ b在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
。在组织.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)
在java.util.concurrent.ThreadPoolExecutor中$ Worker.run(未知来源)
。在java.lang.Thread.run(未知来源)
这是 TopicDAO.findALL()
public static List< Topic> findAll(){
Session s = HibernateUtils.getSession(); //TopicDAO.java:43
Transaction tx = s.beginTransaction();
列表<主题> objects = null;
Query q = s.createQuery(from Topic);
objects = q.list();
tx.commit();
返回对象;
}
这里是我的 servlet.doGet()
公共无效的doGet(HttpServletRequest的请求,响应HttpServletResponse的)抛出的ServletException,IOException异常{
HttpSession的会议= request.getSession ();
TopicDAO td = new TopicDAO();
列表<主题> listTopics = td.findAll();
session.setAttribute(ATT_LIST_TOPICS,listTopics);
this.getServletContext()。getRequestDispatcher(ACCUEIL).forward(request,response);
}
这是我添加的Hibernate库:
-
ClassDefNotFound异常意味着您的程序无法
从引用的库中找到必需的.class文件。 在您的情况下,hibernateX.jar文件不是打包在您的 -
打开项目结构
$ b -
在OutputLayout选项卡的War文件中从左侧选项中选择Artifacts
-
浏览至
WEB -INF / lib
-
添加包含h ibernateX.jar到文件夹中
-
重新部署您的项目。
- 简单地将jar拖放到
WEB-INF / lib
war文件中。 您的
war文件的-INF / lib 文件夹。
>解决方案(使用IntelliJ):
解决方案(使用Eclipse):
$ b
I am running a web application with hibernate and got stuck at this exception. Any help please?
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)
Here is 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;
}
And, here is my 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 );
}
Here is my added Hibernate libraries:
Explanation:
A ClassDefNotFound exception means that your program was unable to find a required .class file from the referenced libraries.
In your case the hibernateX.jar file isn't packaged inside your war file.
What you need to do is to add it to the
WEB-INF/lib
folder of your war file.
Solution (using IntelliJ):
open up project structure
select Artifacts from the left side options
from your war file in the OutputLayout tab browse to
WEB-INF/lib
add the library containing hibernateX.jar into the folder
redeploy your project.
Solution (using Eclipse):
- Simply drag and drop the jar to
WEB-INF/lib
这篇关于java.lang.ClassNotFoundException:org.hibernate.HibernateException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!