|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 690 ![]() |
Bonjour à tous,
J'utilise OSGI pour me créer des bundles. Je fais les build de mes différents projets en utilisant maven. Un des projets que je veux utiliser contient des appels a des webservices. J'utilise l'implémentation felix d'OSGI et lorsque je lance Felix pour démarrer mes bundle, j'ai l'erreur suivante : java.jang.NoClassDefFoundError : com.sun.xml.internal.ws.api.message.Header not found by com.client.monBundle Quelqu'un aurait-il une idée sur la façon de régler le problème ?? Peut-être une ressource à ajouter dans mon POM ? Merci beaucoup Edit : si je fais un import com.sun.xml.internal.ws.api.message.Header; je n'ai pas d'erreur de compile. Par contre, lorsque je fais un mvn install, j'ai l'erreur suivante : package com.sun.xml.internal.ws.api.message does not exist ce qui tend vers un souci au niveau du PÖM. Mais quoi mettre ??
__________________
https://www.weetool.com |
|
|
00
|
|
|
#2 |
![]() ![]() Logan Développeur Java Inscription : août 2005 Messages : 1 689 ![]() |
Tu ne dois pas utiliser ce qui commence par com.sun et encore moins ce qui contient "internal" dans le nom du package.
Vérifies si tu utilises le même JDK dans les deux cas. |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 690 ![]() |
Salut Nemek
oui c'est le même JDK (c'est le dernier) En fait, j'avais fait un Code :
import com.sun.xml.internal.ws.api.message.Header;
La complétion marche bien et Eclipse me propose bien ce package dans la classe principale du bundle. Par contre, si je fais mvn install, j'ai un Build failure - package com.sun.xml.internal.ws.api.message does not exist
__________________
https://www.weetool.com |
|
|
00
|
|
|
#4 |
![]() ![]() Logan Développeur Java Inscription : août 2005 Messages : 1 689 ![]() |
Le package officiel est normalement "com.sun.xml.ws.api.message" (sans "internal").
Pour utiliser cette classe il te faut l'implémentation de référence JAX-WS. Elle est fournie avec un conteneur d'application J2EE 5. L'artefact Maven est "jaxws-rt" (ça devrait être un dépendance runtime !) |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 690 ![]() |
Ok Nemek merci
![]() Pour être également plus précis sur la façon de résoudre ce problème et parce que ça peut servir à d'autres, j'ai résolu mon problème en ajoutant dans le fichier config.properties (fichier propre à Felix) la ligne suivante : Code :
org.osgi.framework.bootdelegation=com.sun.xml.internal.ws.api.message
__________________
https://www.weetool.com |
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() ![]() Inscription : août 2006 Messages : 1 234 ![]() |
Citation:
J'aurais un bundle avec la lib, qui exporte ses packages publics, et ton bundle import le package. Mais modifier cette propriété peut être dangereux…
__________________
"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 |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 690 ![]() |
Salut George7
Zut, moi qui croyais avoir trouvé un super truc !! Ton idée n'est pas mauvaise, je vais m'y pencher ... Par contre, c'est quoi cette propriété ? et comment faire un bundle avec une lib ?
__________________
https://www.weetool.com |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : août 2006 Messages : 1 234 ![]() |
Déjà regarde si il n'existe pas une version bundle de la lib. Si non, c'est plutôt simple, tu crées un Manifest "qui-va-bien", c'est-à-dire qui exporte les packages publics de la lib, donne un nom au bundle, et le tour est joué.
La propriété dont je parlais et celle que tu as utilisée. Je n'ai jusqu'ici jamais eu besoin de l'utiliser, et ça peut faire des résultats surprenants par la suite, car le classloader délègue automatiquement lors de la résolution des imports pour les packages mentionnés.
__________________
"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 |
|
00
|
|
|
#9 |
![]() ![]() Logan Développeur Java Inscription : août 2005 Messages : 1 689 ![]() |
Eclipse fait très bien ce genre de boulot sinon il existe l'outil bnd.
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Inscription : août 2006 Messages : 1 234 ![]() |
Ouais c'est sûr, mais bon même à la main c'est pas la mort et comme je le dis aussi, il existe souvent des versions déja avec un manifest pour OSGi
__________________
"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 |
|
00
|
|
|
#11 |
![]() ![]() Logan Développeur Java Inscription : août 2005 Messages : 1 689 ![]() |
Ouais mais franchement écrire un MANIFEST correct à la main c'est vraiment chiant faut pas que ca dépasse 70 caractères par ligne sinon faut ajouter un retour chariot et des espaces, en plus ce genre de librairie possède un nombre incalculable de package si tu t'amuses à tout les exporter t'as pas finis les copier/coller.
Par contre il doit sûrement exister une version bundle du jar vu qu'il s'agit d'une implémentation standard. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com