java.lang.NoClassDefFoundError sur OSGi
J'ai un bundle, avec un activateur déclaré. Cet activateur de créer une JFrame et de la montrer.
En cours d'exécution sur Eclipse en tant que Plugin projet, il fonctionne très bien. Quand je l'ai mis sur Felix il ne fonctionne plus.
Il montre:
java.lang.NoClassDefFoundError: com/griep/ui/MainFrame
Mais MainFrame est situé dans le même panier l'activateur est, comme une classe publique, bien sûr. Je ne comprends pas pourquoi le chargeur de classe n'est pas de trouver la classe.
Quelqu'un sait ce qui se passe?
- est-il enveloppé exception?
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que vous importez le
javax.swing
paquet dans votre bundle:OSGi_Carteiras_Manager
bundle: javax.swing, javax.swing.frontière, javax.swing.l'événement, org.aspectj.interne.lang.annotation, org.aspectj.lang.annotation, org.jfree.graphique, org.jfree.le graphique.les étiquettes, org.jfree.le graphique.l'intrigue, org.jfree.de données, org.jfree.les données.général, org.jfree.les données.temps, org.jfree.les données.xy.org.osgi.framework.bootdelegation=*
. Ce hack ne devrait jamais être invoqué, car il conduit à exactement les erreurs rencontrées par Ed. La bonne façon d'utiliser un package dans OSGi est pour l'importer.Utiliser cette VM argument:
-Djava.specification.version=1.6
Cette force Felix de rendre disponible l'ensemble par défaut des paquets du système pour Java 6, qui comprend
javax.swing
et de ses sous-packagesMaintenant ça fonctionne! J'ai configuré délégation de démarrage dans le fichier de config!
J'ai mis org.osgi.cadre.bootdelegation= dans la configuration.ini.
Les deux de vous ne m'a dit cela avant que les gars hehe. Maintenant que j'ai lu dans equinox wiki, qu'à la suite de la spécification OSGi j'ai besoin de définir tous les paquets dont j'ai besoin, et je pense que son droit, parce que certaines des VMs pouvez avoir plus de libs que les autres.
Mais Eclipse ne fonctionne pas dans ce concept de l'importation de chaque package java (comme javax.swing). Je vais signaler cela dans Eclipse Bugzilla.
Merci beaucoup vous deux!
PS: Quel est votre livre de @Neil?
Avez-vous déclaré le Bundle-ClassPath dans votre bundle MANIFESTE.MF