ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
314
314
EMPFEHLEN
-
16.06.11 15:07 #1
- Registriert seit
- Jun 2011
- Beiträge
- 4
Hallo Community,
ich habe gleiche Frage auch schon im Hibernate Forum gepostet, bisher aber leider keine Antwort bekommen. Ich würde mich freuen wenn mir hier jemand helfen kann!
Also worum geht es:
Ich habe eine Applikation mit Hibernate entworfen deren Funktionalität ich nun um eine Plugin-Schnittstelle erweitern möchte.
Dafür habe ich einen Ordner /plugins angelegt und mir eine kleine Klasse gebaut, welche über einen URLClassLoader alle *.jar Dateien innerhalb dieses Ordners dynamisch nachläd.
Mein Problem ist nun, dass ich es nicht schaffe die Klassen, die sich in der externen jar befinden zu mappen.
Mein Ansatz war der, dass ich zu jeder Klasse auch die passende *.hbm.xml in die Plugin-Jar lege und über conf.addJar("plugin.jar") die Mappings lade.
Leider endet dieser Ansatz in einer ClassNotFoundException, da Hibernate die Klassen aus dem Plugin nicht kennt. Das hinzufügen der plugin.jar in den Classpath kommt für mich nicht in Frage, da die Plugin ja von beliebigen Entwicklern stammen können, die keinen Zugriff auf den Classpath der Hauptapplikation haben.
Hier noch der dazugehörige Code:
Inhalt der plugin.jar
Terminal.java
Terminal.hbm.xml
Inhalt der Terminal.hbm.xml:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="Terminal" table="pw_terminals"> <id name="id" column="terminal_id" type="integer"> <generator class="native"/> </id> <property name="name" column="name" type="string" length="100" not-null="true"/> <property name="key" column="terminalkey" type="string" not-null="true"/> </class> </hibernate-mapping>
Schnipsel aus der Hauptapplikation:
Code :1 2 3 4 5
Configuration dbconf = new Configuration().configure(); // read mapping resources of plugins for (File pluginfile : Plugins.getInstance().listPlugins()) dbconf.addJar(pluginfile); SessionFactory fact = dbconf.buildSessionFactory();
Das ganze endet dann in einer ClassNotFoundException für die Klasse Terminal.
Ähnliche Themen
-
Hibernate: 2 Objekte desselben Typs auf 2 versch. Properties der Vaterklasse mappen
Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 5Letzter Beitrag: 24.08.10, 15:57 -
JPA: Eine Klasse auf 2 verschiedene Tabellen mappen (Stammdaten und Archivdaten)?
Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 06.02.09, 23:40 -
Hibernate: value-type als Klasse mappen
Von Vatar im Forum JavaAntworten: 0Letzter Beitrag: 15.10.07, 12:53 -
[Hibernate] Interface-Implementation erweitern und mappen
Von AceTheFace im Forum JavaAntworten: 1Letzter Beitrag: 19.03.07, 12:08 -
[Eclipse RCP] Hibernate-Ressourcen im Classpath
Von Vatar im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 30.11.06, 00:42





Zitieren
Login





