Eclipse RCP, EMF, Hibernate Problem

krazun

Bekanntes Mitglied
Tag zusammen,

ich versuche eine kleine Eclipse RCP Anwendung zu entwickeln mit EMF/Teneo und Hibernate. Leider bekomme ich seit Stunden folgenden Fehler beim Initialisieren des datastore und komme einfach nichtmehr weiter. Hatte vielleicht schon jemand ein ähnliches Problem oder irgend einen Tipp? Google hab ich dazu schon befragt aber nichts gefunden was mir weitergeholfen hätte.

Java:
Root exception:
java.lang.NoSuchMethodError: org.hibernate.mapping.SimpleValue.<init>(Lorg/hibernate/mapping/Table;)V
	at org.eclipse.emf.teneo.hibernate.HbDataStore.addContainerMappingToPC(HbDataStore.java:1187)
	at org.eclipse.emf.teneo.hibernate.HbDataStore.addContainerMapping(HbDataStore.java:1172)
	at org.eclipse.emf.teneo.hibernate.HbDataStore.addContainerMappings(HbDataStore.java:872)
	at org.eclipse.emf.teneo.hibernate.HbDataStore.initializeDataStore(HbDataStore.java:329)
	at org.eclipse.emf.teneo.hibernate.HbSessionDataStore.initialize(HbSessionDataStore.java:85)

mfg,
krazun
 
Es funktioniert nun, danke dir vielmals es lag wirklich an den Versionen. Ich hab Teneo von 1.1.2 auf 1.2.0 geupdatet und nun passt es.

Bin nur ein klein wenig verwundert weil ich meine Hibernate 3.6.1 schonmal mit der Teneo Version aus der Helios Update-Site zum laufen gebracht zu haben.

Nun ja, hauptsache es funktioniert nun 😉

mfg,
krazun
 
leider hänge ich nun an einer andere Stelle:

Java:
java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) previously initiated loading for a different type with name "org/hibernate/SessionFactory"
	at project.data.store.DataStoreConnection.getSession(DataStoreConnection.java:83)
	at project.data.dao.ProjectDAO.saveProject(ProjectDAO.java:22)
	at project.data.ui.wizards.NewProjectWizard.performFinish(NewProjectWizard.java:43)
	at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:811)

die entsprechende Stelle in der DataStoreConnection ist:

Java:
session = sessionFactory.openSession();

Wäre über jeden Tipp der mir hilft auch dieses Problem zu lösen dankbar.

mfg,
krazun
 
Ist wohl ein Classpath Problem. Hast du irgendwo eine Hibernate jar in eines deiner Bundles gepackt? Das ist der typische Grund für diese Art fehler.
 
In dem Bundle in dem das EMF Datenmodell ist, habe ich die Hibernate, SLF4J und MySQL Connector libs dem Classpath hinzugefügt (Im Runtime Tab in der Plugin.xml).

Teneo und EMF hab ich als Bundle hinzugefügt, welche ich von den entsprechenden Update-Sites hab.

Die Manifest-Datei:

Java:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: project.data;singleton:=true
Bundle-Version: 1.0.0
Bundle-ClassPath: .,
 lib/mysql-connector-java-5.1.15-bin.jar,
 lib/slf4j-api-1.6.1.jar,
 lib/slf4j-simple-1.6.1.jar,
 lib/antlr-2.7.6.jar,
 lib/commons-collections-3.1.jar,
 lib/dom4j-1.6.1.jar,
 lib/hibernate-jpa-2.0-api-1.0.0.Final.jar,
 lib/hibernate3.jar,
 lib/javassist-3.12.0.GA.jar,
 lib/jta-1.1.jar
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.eclipse.core.runtime,
 org.eclipse.ui;bundle-version="3.6.1",
 project.utils;bundle-version="1.0.0",
 org.eclipse.emf.ecore;bundle-version="2.6.1",
 org.eclipse.emf.ecore.xmi;bundle-version="2.5.0",
 org.eclipse.emf.teneo;bundle-version="1.2.0",
 org.eclipse.emf.teneo.annotations;bundle-version="1.2.0",
 org.eclipse.emf.teneo.hibernate;bundle-version="1.2.0"
Bundle-ActivationPolicy: lazy
Export-Package: eu.bal.lcpa.data.dao,
 project.data.model.lcpa,
 project.data.model.lcpa.impl,
 project.data.model.lcpa.util,
project.data.store


mfg,
krazun
 
Deine Antwort lies darauf schließen das das hinzufügen von libs zum Classpath nicht so optimal ist. Ich hab mir aus den Hibernate libs auch selbst ein Bundle erstellt, aber habe wohl irgendwas falsch gemacht, da es damit nicht geklappt hat. Hab mir nun von Update site for EMF Teneo and EMFT Texo dependencies Hibernate und den MySQL Connector als vorgefertigte Bundles geladen und sie eingebunden und nun funktioniert auch das persistieren des EMF Models. Sind zwar nicht die aktuellsten Versionen, aber es geht 😉

Danke nochmal vielmals für deine Hilfe !

mfg,
krazun
 

Zurück
Oben