Questions & Answers

SOLVED
markus
I'm new here

ResourceConflictException bei der Modulinstallation

Jump to solution

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

1 Solution

Accepted Solutions

die Reihenfolge spielt keine Rolle, die Definition war nicht korrekt.

</service>

<resources>

muss aber so sein:

</service>

</components>

<resources>

View solution in original post

0 Kudos
23 Replies
andre
I'm new here

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

0 Kudos

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

0 Kudos

<resource scope="module">lib/openjpa-all-2.1.0.jar</resource> sollte funktionieren

---------

generell gilt:

"

  1. Jars sollten so weit wie mรถglich "modul-lokal" sein, um Konflikte zu vermeiden ("jar hell")
  2. Klassen aus global-definierten Jars kรถnnen keine Klassen modul-lokal definierten Jars benutzen (umgekehrt allerdings schon)

"

soo nun hat die Bibliothek noch den Zusatz "scope" bekommen.

Es funktioniert!

Besten Dank dafรผr!

0 Kudos

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.

0 Kudos

Das mรผsste dann aber ein Open-JPA Problem sein oder Service-Problem sein. Eventuell postest du mal die Fehlermeldung?

Peter
0 Kudos

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.

0 Kudos

Wenn der Dienst in einem anderem Modul liegt, welches die Bibliothek selber nicht definiert, ist der Fehler natรผrlich erwartungskonform.

Peter
0 Kudos

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.

0 Kudos

Type a product name