Ich verbessere jpa, hibernate, spring und jdk, um die neuen Funktionen von JPA 2.1 zu aktivieren. Aber ich bekomme den folgenden Fehler:
%Vor% Ich habe andere Beiträge dazu gelesen, aber sie beheben den Fehler auf meinem Computer nicht. Zum Beispiel, SJuan76s Antwort auf dieses Posting schlägt eine Aktualisierung vor zu jpa 2.1, aber ich habe die Facette des eclipse jpa-Projekts auf Version 2.1 gesetzt und ich habe auch hibernate-jpa-2.1-api
in meine pom.xml aufgenommen. Sie können alle Versionen der verschiedenen Bibliotheken in der vollständigen pom.xml lesen, indem Sie auf diesen Link klicken . Was muss ich in der pom.xml oder im Eclipse-Projekt ändern, um diesen Fehler zu beheben?
Hinweis: Ich kann den Fehler beheben, indem ich die Hibernate-Version in der Datei "pom.xml" in " <hibernate.version>4.2.1.Final</hibernate.version>
" zurückverwandle, aber dies verhindert den Zweck des Upgrades. Kann das Ändern der Ruhezustandsversion den Fehler ein- und ausschalten, um das Problem zu diagnostizieren?
Wenn das Problem mehrere miteinander in Konflikt stehende Gläser sind, könnte ich den Eclipse-Typ-Manager verwenden, um eines der Gläser zu deaktivieren, aber nach welchem Glas würde ich suchen?
Hier ist der komplette Stack-Trace:
%Vor% Wenn Sie Jboss 7.1.1 verwenden, hat jboss in seinem Klassenpfad bereits hibernate-jpa-2.0
. Daher verwendet jboss während der Laufzeit den in seinem Klassenpfad, nicht den, den Sie mit Ihrer App implementiert haben, um jboss auf den% -Pfad zu verweisen. co_de% mache folgendes:
Kopieren Sie hibernate-jpa-2.1
in das folgende Verzeichnis: hibernate-jpa-2.1-api-1.0.0.final.jar
Öffnen Sie jboss-as-7.1.1.Final/modules/javax/persistence/api/main
und ändern Sie den Ressourcenstamm wie folgt:
%Code%
(zeigt es auf jpa 2.1)
kompilieren Sie die App erneut und stellen Sie sie anschließend wieder bereit. Dann können Sie loslegen.
Ich habe viel Zeit damit verbracht.
Für mich war es das javax.persistence.jar, das mit Hibernate-Jars in Konflikt steht.
Ich habe die persistence.jar entfernt und es hat angefangen zu arbeiten.
Zuerst müssen Sie herausfinden, welche Abhängigkeit die falsche JPA bringt. Um dies zu tun, verwende maven dependency: tree. Die Ausgabe ist ziemlich einfach und Sie können bestimmen, was ausgeschlossen werden soll.
Ausschließen Sie etwas wie folgt:
%Vor%
Entschuldigung, ich kann nicht mehr helfen, aber mit den Informationen, die Sie zur Verfügung stellen, ist dies alles, was ich tun kann.
Prost.
Ich habe das gleiche Problem in meinem Projekt behoben, indem ich die Hibernate ejb3-Lib ausgeschlossen habe, die über eine transitive Abhängigkeit eingebunden wurde. Die Abhängigkeit von maven dependency: tree war wie folgt:
%Vor%In meinem Projekt war dies ursprünglich in dem ausführbaren Jar enthalten, den mein Build-Prozess über das Maven-Assembly-Plugin erzeugte. Um dies (und andere libs) auszuschließen, habe ich die dependencySet-Konfiguration des Assembly-Plugins in src / main / assemble / test-jar-with-dependencies.xml:
verwendet %Vor%Hoffe das hilft!