2010-08-12 4 views
1

J'essaye d'installer un paquet dans un environnement OSGi (FUSE ESB) mais je n'arrive pas à le résoudre. Le message d'erreur est:Le package utilise un conflit: Import-Package: de.foo.bar; version = "0.0.0"

The bundle could not be resolved. Reason: Package uses conflict: Import-Package: de.foo.bar; version="0.0.0" 

Mon paquet importe le package de.foo.bar. L'ensemble qui exporte le package de.foo.bar le fait avec une directive 'uses'.

Export-Package = de.foo.bar;uses:="{other packages}";version="2.4.0" 

Comme je l'ai compris que je dois faire en sorte que mon paquet doit importer tous les autres paquets mentionnés dans la directive « utilisations » du paquet de.foo.bar (dans la version à droite).

J'ai vérifié cela et j'ai également essayé plusieurs changements de version (0.0.0 et les numéros de version réels) mais je n'arrive pas à le faire fonctionner. Alors, que signifie vraiment le message d'erreur (peut-être que j'ai mal compris)? Que dois-je vérifier?

Merci pour toute aide

Klaus


Informations sur le système:

+0

Cela fonctionne-t-il si vous supprimez simplement les attributs 'uses' et' version' de la déclaration 'Export-packages'? Pour autant que je me souvienne, ils sont facultatifs. –

+0

Les attributs sont ajoutés par le maven-bundle-plugin (même si je spécifie le bundle par nom et non par joker) et je ne sais pas comment éviter cela. Néanmoins, je pense qu'il pourrait être utile de comprendre le message et de configurer les choses correctement. – FrVaBe

Répondre

3

J'ai finalement trouvé ce qui n'allait pas. Mon paquet est un paquet Spring Dynamic Module et j'ai fait une erreur dans la configuration du haricot de printemps (utilisez 'ref' à la place de 'value' dans un constructeur-arg). Normalement, les erreurs de configuration du ressort sont signalées comme telles - je ne sais pas pourquoi l'erreur actuelle a entraîné un message trompeur.

EDIT:

Le défaut configuration Spring ne provoque pas le conflit utilise. Il a finalement été l'importation du paquet org.apache.log4j qui est exporté par différents bundles (dans mon conteneur FUSE ESB) et apparemment était différent câblé aux faisceaux que j'ai essayé d'installer.

En essayant de résoudre mon problème j'ai trouvé l'article Diagnosing OSGi uses conflicts que j'ai trouvé utile pour comprendre le problème.

Questions connexes