====== 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