Ich habe versucht zu testen, ob die Ruhezustand-Konfiguration ordnungsgemäß funktioniert. Ich habe versucht, aber ich habe einen Fehler:
%Vor%Um dies zu tun: Ich erstelle:
[1] Konfigurationsdatei für den Ruhezustand [mit XML]
%Vor%[2] Eine Hibernate-Dienstprogrammklasse
%Vor%[3] Das Hauptprogramm:
%Vor%Aber ich habe Folgendes, wenn ich das Programm starte:
%Vor%Um das zu lösen, habe ich Google ausprobiert und die Methoden angewendet, die ich gefunden habe. aber ich konnte das Problem nicht lösen. Kann mir bitte jemand helfen?
Das ist nur eine INFO-Nachricht, die besagt, dass Sie keine hibernate.properties
-Datei haben. Diese Eigenschaftendatei ist nicht obligatorisch und verhindert nicht, dass Ihre Anwendung funktioniert.
Wenn Sie wissen möchten, was den Fehler bei der Erstellung von SessionFactory
verursacht hat, müssen Sie Ihren catch-Block folgendermaßen ändern:
Sie sollten stattdessen ein Protokollierungsframework verwenden.
Ihr Problem ist die Erstellung der Factory-Sitzung für Ihre Anwendung, die in HibernateUtilities
klasse stattfindet. Der Grund dafür könnte sein, dass Sie keine sessionfactory von sessionRegistry
create it von hibernate Configuration class erstellen können. weil du deine Konfiguration in hibernate.cfg.xml
Ersetzen Sie einfach den folgenden Code in der HibernateUtilities-Klasse
%Vor%bis
%Vor%In meinem Fall habe ich den Hibernate 5 mit JPA-Anmerkungen auf tomcat ausgeführt und hörte auf zu arbeiten, als ich zu glassfish 4.1
wechselteDer Fehler:
hibernate.properties nicht gefunden
Stellen Sie sicher: src / main / resources / hibernate.cfg.xml existiert
Und wenn Sie nur die Abhängigkeit von Hibernate-Core haben, habe ich Hibernate-Annotations und Hibernate-Common-Annotations verwendet und es wurde ein Konflikt erzeugt. Der Winterschlaf 5 benötigt diese beiden nicht, ich hatte irgendwo gelesen. Versuchen Sie zu entfernen;)
Danach erscheint ein neuer Fehler:
java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf (Ljava / lang / Zeichenfolge; I) V
Der Grund war die älteste jboss-logging.jar unter: "YOUR_GLASSFISH_FOLDER / glassfish / modules"
Warum? Der hibernate 5 hat eine Abhängigkeit mit der neuesten Version von jboss-logging und glassfish 4 verwendet die älteste Version, selbst wenn Sie in Ihrer POM-Datei die neueste Version deklarieren. Eigentlich verwende ich:
%Vor%Dann habe ich es heruntergeladen und die alte .jar innerhalb des Modulpfads ersetzt und es wieder an die Arbeit gebracht. Ich habe 2 Tage damit verbracht, das Problem zu lösen, und ich hoffe, es hilft bei zukünftigen Problemen = D
Ich habe diesen Link benutzt, um mir zu helfen: Ссылка
Eine andere Lösung könnte in meinem Fall die letzte Version von Hibernate 4 sein (4.3.11.Final), aber meiner Meinung nach ist sie schon zu alt
Die Konfigurationsdateien müssen im Klassenpfad platziert werden. Stellen Sie sicher, dass sich die Datei hibernate.cfg.xml im Klassenpfad befindet. Da Ihr Programm ein Konsolenprogramm ist, müssen Sie diese hibernate.cfg.xml im src-Ordner ablegen. Wenn Sie es in einem anderen Ordner als in Confingure.configure(fileName);
angegeben haben
Und wie von Mr.Kark beantwortet, müssen Sie folgende Zeilen löschen
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
Ich denke, du verpasst einige Hibernate-Bibliotheken (vielleicht hibernate-tools.jar
, denke ich). Also schau es dir an.
Wie auch immer, ich habe gesehen, wie Sie die Hibernate-Annotationen verwendet haben. Versuchen Sie also bitte diesen Code und sehen Sie, was mit den nicht gefundenen Fehlereigenschaften passiert.
%Vor%