2017-10-16 3 views
0

Suivre les étapes que je veux connaître pour déployer des projets camel dans un environnement de structure de fusible. J'ai créé des jarres de paquet. Ces bocaux fonctionnent bien dans un environnement non-fabric. i-e quand je déplace ces jars pour déployer le répertoire sur jboss-fuse cela fonctionne parfaitement. Lorsque les mêmes pots sont déplacés dans des conteneurs enfants, cela ne fonctionne pas. Les choses que j'ai installé pour l'environnement de tissu est comme suit:Déployer le projet camel dans le tissu de fusible

Créé conteneur Tissu:

fabric:create --new-user fadmin --new-user-password maskerkey --generate-zookeeper-password --resolver localip 

conteneurs enfants:

fabric:container-create-child root node 2 

Comment dois-je déployer même des pots de faisceau à l'enfant des conteneurs? L'exception suivante je vois quand je jarres bundle déployer:

org.osgi.framework.BundleException: Unresolved constraint in bundle BUNDLE_NAME [139]: Unable to resolve 139.0: missing requirement [139.0] osgi.wiring.package; (osgi.wiring.package=org.apache.activemq.camel.component) 

Répondre

3

Lorsque vous avez environnement de tissu, vous ne devez jamais utiliser le répertoire deploy/. C'est plutôt à des fins de prototypage.

Lorsque vous avez créé les conteneurs enfants utilisant:

fabric:container-create-child root node 2 

Vous avez maintenant deux conteneurs nommés node1 et node2

Un faisceau dans OSGi est juste un amélioré JAR.

A (Karaf) fonction est une collection de faisceaux (et éventuellement les configurations), de sorte que vous pouvez installer plusieurs faisceaux plus facilement.

A (Tissu) profil est une déclaration de faisceaux, les caractéristiques, les configurations et les ressources (à peu près), de sorte que vous pouvez installer plusieurs (karaf) caractéristiques plus facilement.

Votre message d'erreur signifie qu'il n'y a pas de paquet déjà installé, qui pourrait satisfaire à une exigence de votre lot. Plus précisément, il vous manque un paquet qui exporte le paquet org.apache.activemq.camel.component.

Si vous regardez les profils et les fonctionnalités disponibles avec fusible, vous verrez:

JBossFuse:[email protected]> features:info activemq-camel 
Description of activemq-camel 5.11.0.redhat-vvv feature 
---------------------------------------------------------------- 
Feature has no configuration 
Feature has no configuration files 
Feature depends on: 
    activemq-client 5.11.0.redhat-vvv 
    camel-spring [2.17,3) 
    camel-jms [2.17,3) 
    camel [2.17,3) 
Feature contains followed bundles: 
mvn:org.apache.activemq/activemq-camel/5.11.0.redhat-vvv start-level=50 
Feature has no conditionals. 

(où vvv est donné construction de fusible).

Maintenant, vous devez créer votre profil:

profile-create myprofile 

Ajouter activemq-camel fonction à elle:

profile-edit --feature activemq-camel myprofile 

Ajoutez votre paquet à lui:

profile-edit --bundle mvn:your-groupId/your-artifactId/your-version 

et assignons profil à un conteneur (conteneurs)

container-add-profile node1 myprofile