====== TP : Mise en oeuvre de ServiceMix ====== Ce TP constitue essentiellement une mise en route sur ServiceMix et n'est pas noté. Il pourra constituer un point de départ pour la réalisation du [[enseignement:sw:projet|projet]] (à réaliser par [[enseignement:groupes-tiw|groupes TIW]]). Il est ainsi fortement conseillé de se regrouper dès à présent par groupes TIW. ===== Mise en route ===== ==== Mise à jour des sources ==== Se synchroniser avec la dernière version en ligne du projet de base sur la forge: hg clone https://forge.univ-lyon1.fr/hg/tiw5-2011-tp-base ou hg pull https://forge.univ-lyon1.fr/hg/tiw5-2011-tp-base ==== Démarrage de ServiceMix ==== Utiliser bin/servicemix pour lancer servicemix avec une console. ''help'' permet de lister les commandes, parmi lesquelles: * activemq:browse * activemq:query * list * display (pour les logs) ==== Déploiement ==== Le répertoire ''smix'' contient un assemblage de services deployable dans servicemix. Création dans le répertoire ''projet'': mvn install puis copie du fichier ''smix/smix-sa/target/smix-sa-1.0-SNAPSHOT.zip'' dans le répertoire deploy de ServiceMix. Regarder la configuration de smix-cxf-bc et tester avec soapUI. ==== Dessin ==== Lire les différents fichiers de configuration des sous-projets de ''smix''. Faire un dessin représentant les différents //service units//, les services exposés et la transmission des messages. Documentation: * [[http://liris.cnrs.fr/~ecoquery/files/tiw5-jms.pdf|Slides JMS]], {{:enseignement:sw:tiw5-esb.pdf|Slides ESB}}, [[http://liris.cnrs.fr/~ecoquery/files/tiw5-composition.pdf|EAI et camel]] * [[http://servicemix.apache.org/components-list.html|Listes des composants de ServiceMix]] ==== Exercices ==== Modifier l'assemblage pour: * Ajouter des intercepteurs (similaires aux intercepteurs jaxws du TP handlers) * Ajouter une queue JMS intermédiaire dans la transmission du message vers le bean ''AlbumDataService'' * Faire que les messages envoyés à ''AlbumDataService'' soient également copiés dans ''tiw5-data/crees'' * Pouvoir envoyer des messages à ''AlbumDataService'' en copiant un fichier, et obtenir éventuellement une réponse dans le répertoire tiw5-data/ads-reponses. * Comment gérer la corrélation ? * Déployer votre service de stock (c.f. [[enseignement:sw:sw-tp2-jaxws|TP 2]]) ===== Problèmes ===== Pb ActiveMQ: http://servicemix.396122.n5.nabble.com/activemq-list-throws-RuntimeException-td4715215.html Pb Archetype JMS: * Dans le fichier xbeans.xml supprimer le prefixe ''xmlns:amq="http://activemq.org/config/1.0"'' et remplacer la connectionFactory par un bean: puis ajouter dans le pom.xml: org.apache.servicemix servicemix-jms 2011.01 org.apache.geronimo.specs geronimo-j2ee-management_1.1_spec 1.0.1 org.apache.activemq activemq-core 5.4.2 activeio-core org.apache.activemq camel-core org.apache.camel commons-logging commons-logging commons-logging-api commons-logging Pb de conflit de versions possible avec slf4j