cant commencer bundle osgi parce que l'importation ne peut pas être résolu
J'ai fait une petite API Bundle et d'un service pack qui devrait utiliser l'API.
Dans mon maven pom.xml fichier, j'ai ajouté une dépendance au pour mon api bundle dans la version correcte comme ceci:
<dependency>
<groupId>at.foobar.osgi.api</groupId>
<artifactId>foobarapi</artifactId>
<version>1.0</version>
</dependency>
je suis en utilisant le maven-bundle plugin pour créer les paquets, et à cause de cela j'ai utilisé mvn clean install
de créer le fichier jar.
Le Manifeste ressemble à ceci (le service):
Manifest-Version: 1.0
Private-Package: at.foobar.osgi.producer
Built-By: foobar
Tool: Bnd-0.0.238
Bundle-Name: foobarproducer
Created-By: Apache Maven Bundle Plugin
Bundle-Version: 1.0
Build-Jdk: 1.6.0_26
Bnd-LastModified: 1332185439257
Bundle-ManifestVersion: 2
Bundle-Activator: at.foobar.osgi.producer.Activator
Import-Package: at.foobar.osgi.api,org.osgi.framework;version="1.4"
Bundle-SymbolicName: at.foobar.osgi.producer.foobarproducer
qui semble être OK pour moi. L'importation est là, donc tout devrait bien se passer.
maintenant, j'ai commencé jusqu'à l'équinoxe et installé l'API et le producteur bundle.
Ensuite je commence l'API, ce qui a bien marché. Mais quand je veux démarrer le Producteur de Service, j'obtiens cette erreur:
org.osgi.framework.BundleException: The bundle "at.foobar.osgi.producer.foobarproducer_1.0.0 [4]" could not be resolved. Reason: Missing Constraint: Import-Package: at.foobar.osgi.api; version="0.0.0"
Il semble que le cadre ne peut pas trouver de l'api, mais sa installé et démarré?
mh j'ai oublié d'exporter l'API... mais ce que je ne comprends pas pourquoi j'ai besoin de l'exporter? J'ai lu le Noyau spec et de la pensée que l'API paquet ne doit pas être exportées en raison de son résolu par osgi?
Le paquet doit être exportées par votre bundle OU inclus dans le bundle (c'est à dire répertoriés ir Privé-Package). Vous avez fait ni, par conséquent Bnd le détecte comme un package Importé. Probablement à l'Exportation est correct parce qu'il sonne comme une API que d'autres bundles souhaiterez peut-être utiliser.
Concernant votre question "l'API paquet ne doit pas être exportées en raison de son résolu par osgi"... cela ne signifie rien pour moi. Pourriez-vous préciser à quoi vous vous attendiez?
ah ok, je comprends maintenant, c'est exactement la question que j'ai posée dans mon commentaire!
OriginalL'auteur reox | 2012-03-19
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que vous êtes à l'exportation de l'API de paquets, ainsi que de votre forfait peut se lier à eux.
Dans votre maven-bundle de plug-ins pour l'API de bundle, vous devriez avoir quelque chose comme:
OriginalL'auteur Gootik