- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ResourceConflictException bei der Modulinstallation
Hallo Community,
ich habe zwei Module, die die selbe Bibliothek (JAR-Datei) einbinden und benutzen.
Bei der Installation des ersten Moduls gibt es keine Probleme.
Sobald ich das zweite Modul mit der gleichen Bibliothek installieren will, kommt folgende Meldung:
ERROR 24.05.2011 17:27:08.314 (de.espirit.firstspirit.server.module.ModuleManagerImpl): module Menu-Editor: conflict detected, resource will be ignored (lib/openjpa-all-2.1.0.jar): de.espirit.firstspirit.server.module.ResourceConflictException: duplicate resource: lib/openjpa-all-2.1.0.jar
Gibt es evtl. dafรผr eine Lรถsung?
Danke schonmal
Markus
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
die Reihenfolge spielt keine Rolle, die Definition war nicht korrekt.
</service>
<resources>
muss aber so sein:
</service>
</components>
<resources>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
wie sieht den der Modul-Descriptor aus? d.h. wie ist die Resource definiert?
...dieses Posting sollte weiter helfen. https://community.e-spirit.com/message/3985#3985
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
... hier der Auszug aus meiner module.xml
<library>
<resources>
<resource>lib/openjpa-all-2.1.0.jar</resource>
</resources>
</library>
Das Posting kann ich leider nicht aufrufen:
Unauthorized
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
<resource scope="module">lib/openjpa-all-2.1.0.jar</resource> sollte funktionieren
---------
generell gilt:
"
- Jars sollten so weit wie mรถglich "modul-lokal" sein, um Konflikte zu vermeiden ("jar hell")
- Klassen aus global-definierten Jars kรถnnen keine Klassen modul-lokal definierten Jars benutzen (umgekehrt allerdings schon)
"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
soo nun hat die Bibliothek noch den Zusatz "scope" bekommen.
Es funktioniert!
Besten Dank dafรผr!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nachtrag:
Leider schein es doch nicht zu funktionieren, da die benรถtigten Bibliotheken fรผr einen Dienst (global) gebraucht werden.
Wenn nun der "scope" auf module gesetzt wird, findet der Service diese Bibhliotheken nicht mehr und startet nicht.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das mรผsste dann aber ein Open-JPA Problem sein oder Service-Problem sein. Eventuell postest du mal die Fehlermeldung?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Evtl. hilf aus der Modul-Entwickler-Dokumentation Kapitel "2.5.1.1 Versionierung". Was spricht den dagegen, das openjpa-all-2.1.0.jar modul-lokal zu definieren, also auch fuer den Dienst.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wenn der Dienst in einem anderem Modul liegt, welches die Bibliothek selber nicht definiert, ist der Fehler natรผrlich erwartungskonform.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Der Dienst der die Bibliothek benรถtigt liegt in dem Selben Modul, hier einen Auszug aus der module.xml
<library>
<resources>
<resource>lib/menu-editor-module.jar</resource>
<resource>lib/jtds-1.2.5.jar</resource>
<resource>lib/openjpa-all-2.1.0.jar</resource>
</resources>
</library>
<service>
<name>Menu-Editor Service</name>
<class>com.communicode.menueditor.firstspirit.service.impl.MenuEditorServiceImpl</class>
</service>
Wenn ich nun den scope auf module setze, dann wird beim starten des Dienstes die Bibliothek nicht gefunden
(ClassNotFoundException) da ein Dienst "global" ist
Der Punkt Versionierung hilft leider auch nicht, da auch ein Treiber benรถtigt wird.
Dieser mรผsste dann auch in einer anderen Version in jedem Modul benutzt werden.

