Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre actif
    Inscrit en
    juillet 2006
    Messages
    718
    Détails du profil
    Informations forums :
    Inscription : juillet 2006
    Messages : 718
    Points : 151
    Points
    151

    Par défaut [OSGi] Erreur "Unresolved constraint in bundle"

    Bonjour à tous,

    Voici mon problème. J'utilise OSGI pour mon projet. Je dispose d'un jar que j'appelle via l'implémentation Felix d'OSGI (via felix.jar qui va me charger mon module principal). Mon souci est que, dans la classe principale (Activator.java) du module appelé par Felix, j'ai besoin de logguer (et donc besoin de log4j)

    Je fais donc:

    Code :
    import org.apache.log4j.Logger;
    J'utilise maven pour compiler mon projet et dans mon POM, j'ai ceci :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     <build>
        <plugins>
          <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>1.4.0</version>
            <extensions>true</extensions>
            <configuration>
              <instructions>
                <_donotcopy>(CVS|.svn|config.properties)</_donotcopy>
                <Main-Class>org.mplify.teamtilt.core.Activator</Main-Class>
                <import-Package>!android.*,!dalvik.*,org.osgi.framework,org.osgi.service.packageadmin,org.osgi.service.url,org.osgi.service.startlevel,org.osgi.util.tracker,*, org.apache.log4j</Import-Package>
                <Export-Package>org.mplify.teamtilt.core.service.*</Export-Package>
                <Private-Package>org.mplify.teamtilt.core.*</Private-Package>
                <Embed-Dependency>*;artifactId=org.apache.felix.main;inline=true</Embed-Dependency>
                <Bundle-Activator>org.mplify.teamtilt.core.Activator</Bundle-Activator>
                <Bundle-Vendor>M-PLIFY</Bundle-Vendor>
              </instructions>
            </configuration>
          </plugin>
          <plugin>
    	     <artifactId>maven-compiler-plugin</artifactId>
    	        <configuration>
    	          <source>1.5</source>
    	          <target>1.5</target>
    	     </configuration>
    	  </plugin>
        </plugins>
      </build>
    A l'exécution, j'ai ce message :

    Code :
    ERROR: Bundle org.apache.example.Main [2]: Error starting file:/home/xxxx/Downloads/bundle/Main-1.0.0.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle org.apache.example.Main [2]: Unable to resolve 2.0: missing requirement [2.0] package; (package=org.apache.log4j))
    Quelqu'un sait-il me dire a quoi cette erreur est-elle due et comment la résoudre ?

    Merci beaucoup.

  2. #2
    Membre Expert
    Avatar de George7
    Homme Profil pro
    Inscrit en
    août 2006
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : août 2006
    Messages : 1 234
    Points : 1 641
    Points
    1 641

    Par défaut

    Salut

    Tu as bien un bundle qui fournit (export) le package log4j dans ton système ?

    EDIT : la distrib officielle de log4j est un bundle OSGi avec les export qui vont bien

    De plus cette ligne me fait un peu peur
    Code :
    1
    2
     
    <Embed-Dependency>*;artifactId=org.apache.felix.main;inline=true</Embed-Dependency>
    As-tu vraiment besoin d'embarquer dans ton bundle des choses propres à Felix ?
    "Ikea / furnishing = OSGi / software : They allow to have very modular things, but trying to put them together generally drives you crazy"
    -- Mario Fusco

    Pour vos développements Java : apprenez à utiliser la javadoc

  3. #3
    Membre actif
    Inscrit en
    juillet 2006
    Messages
    718
    Détails du profil
    Informations forums :
    Inscription : juillet 2006
    Messages : 718
    Points : 151
    Points
    151

    Par défaut

    Salut George7

    Merci bien pour ta réponse. Elle m'a mise sur la voie (comme d'habitude en fait !! ). Mon jar était foireux. Je l'ai remplacé par le jar qui se trouvait dans le dossier 'plugins' d'Eclipse : org.apache.log4j_1.2.15.v201005080500.jar

    Du coup, ça marche nickel.

    Pour la ligne dont tu parles, je t'avoue que je n'ai pas vérifié. j'avais repris l'exemple donné sur le site dont on parlait la dernière fois. Je vais l'enlever et voir ce que ça donne.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •