# Eclipse RCP, EMF, Hibernate Problem



## krazun (28. Mrz 2011)

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.


```
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


----------



## Wildcard (28. Mrz 2011)

Ich würde sagen deine Hibernate Version passt nicht zur Teneo Version.


----------



## krazun (28. Mrz 2011)

Werde ich morgen früh direkt überprüfen und Rückmeldung geben.

Danke schonmal vielmals für den Tipp.

mfg,
krazun


----------



## krazun (29. Mrz 2011)

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


----------



## krazun (29. Mrz 2011)

leider hänge ich nun an einer andere Stelle:


```
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:


```
session = sessionFactory.openSession();
```

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

mfg,
krazun


----------



## Wildcard (29. Mrz 2011)

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.


----------



## krazun (29. Mrz 2011)

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:


```
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


----------



## krazun (29. Mrz 2011)

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


----------

