2010-11-03 3 views
0

Je déploie actuellement un certain nombre de paquets dans equnox en utilisant pax-runner. Les bundles se trouvent dans un dossier, le chemin d'accès à celui-ci est transmis au coureur dans un fichier args. Le problème que j'ai est que le même déploiement de paquets est démarré dans un ordre différent dans Windows que dans Linux. Dans Windows tout va bien, mais dans Linux les paquets semblent être démarrés dans un ordre aléatoire. Le résultat de ceci est que certains paquets sont indiqués dans le mauvais ordre, ce qui provoque des erreurs, par exemple, jersey-serveur démarre avant jersey-core, donc je reçois un NPE. Quelqu'un peut-il fournir une explication quant à pourquoi cela se produit? Dois-je spécifier un ordre de départ pour certains bundles?Ordre de démarrage du paquet OSGi linux vs windows

+0

Y a-t-il une question liée à la programmation ici? – leppie

+0

Pas directement. J'essaie de comprendre pourquoi, lors du déploiement de deux ensembles identiques de paquets OSGi dans un conteneur d'équinoxe, l'ordre de démarrage semble différent sur Linux par opposition à Windows. – Barry

Répondre

3

Nous venons de scanner le répertoire pour les paquets, alors pourquoi l'ordre aléatoire je ne peux pas dire. Mais à coup sûr, vous ne devriez pas compter sur cet ordre. Les bonnes pratiques d'OSGi indiquent que vous ne devez pas du tout compter sur l'ordre de démarrage, mais si vous ne pouvez pas partir sans vous devrez utiliser différents moyens pour spécifier l'ordre de démarrage. Par exemple, vous pouvez mettre des paquets dans différents dossiers par ordre de démarrage et spécifier l'ordre de départ par répertoire configuré.

+0

J'ai fini par créer un fichier d'analyse avec le niveau de début spécifié pour certains paquets et cela l'a résolu. Merci. – Barry

+1

Vous feriez mieux de faire l'ordre de départ en fonction de la dépendance. Et OSGi a un service de niveau de départ pour contrôler l'ordre de départ des paquets. – Kane

Questions connexes