Sonntag, Mai 31, 2020

resources/hibernate.cfg.xml nicht gefunden

Bin ich mit dem lernen von Hibernate in der Java-web-app. Ich habe Folgendes sessionFactory begann mit einer Konfiguration für die Lage meiner hibernate.cfg.xml Datei, aber es beschwert sich trotzdem: resources/hibernate.cfg.xml not found

Die „Ressourcen“ – Ordner ist ein Unterverzeichnis von meinen „src“ Ordner in das java-Projekt.

public class HibernateUtil
{
    private static final SessionFactory sessionFactory = new Configuration().configure("resources/hibernate.cfg.xml").buildSessionFactory();

    public static void main(String[] args)
    {
        Session session = sessionFactory.getCurrentSession();
        Transaction tx = session.beginTransaction();

        Book book1 = new Book("John Wright", "Unknown Title");
        session.save(book1);
        tx.commit();

        System.out.println("Book committed: book title: " + book1.getTitle() + ", author is: " + book1.getAuthor());
        sessionFactory.close();
    }


}

Den hibernate-Abhängigkeit bin ich mit meiner pom.xml ist wie folgt, aber intelliJ warnt, dass die buildSessionFactory () – Methode ist deprecated durch markieren eines „Durchgestrichen“

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.5.Final</version>
        </dependency>

Ich bin Entsendung der Fehlermeldung meine ich an der Unterseite als gut. Was mache ich falsch? Dank

10:43:12.737 [main] INFO  o.h.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
10:43:12.746 [main] INFO  org.hibernate.Version - HHH000412: Hibernate Core {4.3.1.Final}
10:43:12.747 [main] INFO  org.hibernate.cfg.Environment - HHH000206: hibernate.properties not found
10:43:12.749 [main] INFO  org.hibernate.cfg.Environment - HHH000021: Bytecode provider name : javassist
Exception in thread "main" java.lang.ExceptionInInitializerError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:259)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:116)
Caused by: org.hibernate.HibernateException: resources/hibernate.cfg.xml not found
    at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:173)
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:2093)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2074)
    at persistence.HibernateUtil.<clinit>(HibernateUtil.java:14)
    ... 3 more
10:43:12.763 [main] INFO  org.hibernate.cfg.Configuration - HHH000043: Configuring from resource: resources/hibernate.cfg.xml
10:43:12.763 [main] INFO  org.hibernate.cfg.Configuration - HHH000040: Configuration resource: resources/hibernate.cfg.xml

Process finished with exit code 1
  • Nur um sicher zu gehen, die hibernate.cfg.xml in src/main/resources? Maven ist sehr insbesondere mit der Projekt-Struktur…
  • Nein, es ist src/Ressourcen, aber auch wenn ich mich bewege Ressourcen src/main, gleicher Fehler weiterhin besteht
  • Hast du das setup Maven zu gehören, die in der letzten build dann? In der Regel Maven src/main/java für alle java-Dateien und src/main/resources für alle anderen Dateien. Mit dieser Struktur von Maven automatisch weiß, wo alles ist und dass Sie alle aufgenommen werden müssen. Außerdem, wenn man es in src/main/resources, Sie würde nicht geben Sie es als .konfigurieren(„resources/hibernate.cfg.xml“) sondern als .konfigurieren(„hibernate.cfg.xml“) es sei denn, Sie machen die Ordner unter dem Ordner Ressourcen.
  • funktioniert immer noch nicht mit .konfigurieren(„hibernate.cfg.xml“), danke
  • Auch nach dem verschieben der Datei src/main/resources?
  • ja, ich zog die Dateien unter Ressourcen auf dem Pfad src/main/resources

InformationsquelleAutor TonyGW | 2014-06-05

2 Kommentare

  1. 1

    Ihre hibernate-config-Datei nicht gefunden werden, weil es nicht in die root des classpath, wenn die webapp gestartet wird…

    Wenn Sie mit Maven, setzen die hibernate.cfg.xml Datei src/main/resources-Ordner sollte dazu führen, dass es automatisch kopiert, um WEB-INF/classes in der war-Datei. Öffnen Sie Ihre war-Datei und sehen, wo die hibernate.cfg.xml platziert wird.

    Wenn die hibernate.cfg.xml Datei ist NICHT in Ihrer war-Datei … überprüfen Sie die maven-war-plugin-Einstellungen in Ihrem POM.

    Bezüglich der deprecation-Warnung, laut der 4.3 Dokumentation, buildSessionFactory() ist veraltet und Sie sollten mit buildSessionFactory(ServiceRegistry) statt.

  2. 1

    danke an Euch alle für die Antworten.

    Schließlich habe ich es herausgefunden. Unten ist meine Konfiguration in meinem HibernateUtil-Klasse. Denn ich bin mit Hibernate 4.3.5, ich habe ersetzt die veralteten Methoden mit den neusten haben. Auch ich zog meine hibernate.cfg.xml zu src/main/java/resources.

    static {
            try {
                Configuration configuration = new Configuration().configure("/resources/hibernate.cfg.xml");
                StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
                sessionFactory = configuration.buildSessionFactory(builder.build());
            } catch (HibernateException ex) {
                System.err.println("Initial sessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }

Kostenlose Online-Tests