java.lang.ClassNotFoundException:org.hibernate.HibernateException [英] java.lang.ClassNotFoundException: org.hibernate.HibernateException

查看:647
本文介绍了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:d​​ardContextValve.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文件不是打包在您的
    war文件中。 您的
    war文件的-INF / lib 文件夹。
    >解决方案(使用IntelliJ):


    1. 打开项目结构

    2. $ b
    3. 在OutputLayout选项卡的War文件中从左侧选项中选择Artifacts


    4. 浏览至 WEB -INF / lib


    5. 添加包含h ibernateX.jar到文件夹中


    6. 重新部署您的项目。


    解决方案(使用Eclipse):
    $ b


    1. 简单地将jar拖放到 WEB-INF / lib


    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):

    1. open up project structure

    2. select Artifacts from the left side options

    3. from your war file in the OutputLayout tab browse to WEB-INF/lib

    4. add the library containing hibernateX.jar into the folder

    5. redeploy your project.

    Solution (using Eclipse):

    1. Simply drag and drop the jar to WEB-INF/lib

    这篇关于java.lang.ClassNotFoundException:org.hibernate.HibernateException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆