it-swarm.com.de

java.lang.ClassNotFoundException: org.hibernate.HibernateException

Ich verwende eine Webanwendung mit Hibernate und bin bei dieser Ausnahme stecken geblieben. Hilfe bitte

Java.lang.ClassNotFoundException: org.hibernate.HibernateException Unter org.Apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.Java:1714) Unter org.Apache.catalina.loader.WebappClassLoader .loadClass (WebappClassLoader.Java:1559) bei com.forum.dao.TopicDAO.findAll (TopicDAO.Java:43) bei com.forum.servlets.Accueil.doGet (Accueil.Java.) : 23) Unter javax.servlet.http.HttpServlet.service (HttpServlet.Java:621) Unter javax.servlet.http.HttpServlet.service (HttpServlet.Java:728) bei org.Apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.Java:305) bei org.Apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.Java:32). at org.Apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.Java:222) bei org.Apache.catalina.core.StandardContextValve.invoke (StandardContextValve.Java:123) at org.Apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.Java:472) bei org.Apache.catalina.core.StandardHostValve.invoke (StandardHostValve.Java:171) bei org .Apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.Java:99) Unter org.Apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.Java:953) Am org.Apache .catalina.core.StandardEngineValve.invoke (StandardEngineValve.Java:118) bei org.Apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.Java:408) bei org.Apache.coyote .http11.AbstractHttp11Processor.process (AbstractHttp11Processor.Java:1008) bei org.Apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.Java:589) bei org.Apache.up .net.JIoEndpoint $ SocketProcessor.run (JIoEndpoint.Java:312) unter Java.util.concurrent.ThreadPoolExecutor.runWorker (unbekannte Quelle) bei J ava.util.concurrent.ThreadPoolExecutor $ Worker.run (unbekannte Quelle) unter Java.lang.Thread.run (unbekannte Quelle)

Hier ist 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;
}

Und hier ist mein 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 );
}

Hier sind meine hinzugefügten Hibernate-Bibliotheken:

hibernate structure

7
Gentuzos

Erklärung:

  • Eine ClassDefNotFound-Ausnahme bedeutet, dass Ihr Programm Keine erforderliche .class-Datei aus den referenzierten Bibliotheken finden konnte.

  • In Ihrem Fall ist die Datei hibernateX.jar nicht in Ihrer War-Datei package enthalten.

  • Sie müssen es dem WEB-INF/lib-Ordner Ihrer War-Datei hinzufügen.

Lösung (mit IntelliJ):

  1. projektstruktur öffnen

  2. wählen Sie Artefakte aus den Optionen auf der linken Seite

  3. wechseln Sie in Ihrer Kriegsdatei auf der Registerkarte OutputLayout zu WEB-INF/lib.

  4. fügen Sie die Bibliothek mit hibernateX.jar dem Ordner hinzu

  5. stellen Sie Ihr Projekt erneut bereit.

Lösung (mit Eclipse):

  1. Ziehen Sie das Glas einfach per Drag & Drop in WEB-INF/lib.
17
justADreamer

Ich sehe, dass einige Bibliotheken fehlen. Ich habe diese und es funktioniert gut. Übrigens welche Datenbank benutzt du? PostgreSQL? Andernfalls müssen Sie auch den JDBC-Treiber für Ihre Datenbank angeben. Bitte beachten Sie, dass einige davon für die Verwendung von JPA im Ruhezustand erforderlich sind. 

enter image description here

1
wmac

[Für Eclipse-IDEs] Ich bin auf ähnliche Probleme gestoßen. Ich habe alles ausprobiert, von maven clean, install und updates, um Arbeitsbereiche zu wechseln, den Klassenpfad zu bereinigen oder die Java-Version zu wechseln, aber es konnte nur wie folgt gelöst werden :

- Diese Ausnahme kann auch das Ergebnis der manuellen Erstellung des Tomcat-Servers sein, auf dem die erforderlichen Abhängigkeiten nicht bereitgestellt werden, selbst wenn die erforderlichen Jars im aktuellen Projekt vorhanden sind. Dazu müssen Sie die Konfiguration des Servers und die referenzierten Projekte korrigieren.

Server-Eigenschaften

Laufkonfiguration

0
Raul Acu

versuchen Sie, JAR-Dateien in webContent/WEB-INF/lib hinzuzufügen. Das sollte höchstwahrscheinlich funktionieren. Manchmal kann der Ruhezustand die erforderlichen JAR-Dateien nicht finden. Sie müssen also JAR-Dateien hinzufügen und den richtigen Pfad dafür angeben.

0
shubham grover

Manchmal kann dies als Folge von widersprüchlichen Hibernate-Bibliotheken in Ihrem lokalen Repository für Maven sein. Ich hatte dieses Problem und nachdem ich alles probiert hatte, was hier für mich nicht funktionierte, musste ich alles im Hibernate-Ordner löschen, der mehrere Versionen von Hibernate in meinem lokalen Repo-Repository enthält. Und danach lief alles gut für mich

0
Keelean