dimanche 20 septembre 2009

Tutorial Mule ESB & Eclipse : Créer un projet d’intégration avec Mule en utilisant l’IDE Eclipse

NB : cet article fait partie d’une série de présentation et de tutoriaux pour démystifier Mule ESB : http://net-progress.blogspot.com/)

Créer un projet Mule

Une fois installé, le plugin de Mule ajoute un nouveau type de projet dans Eclipse : le projet de type Mule

Dans Eclipse : ajouter un projet Mule est simple

Choisir

File à New à other

clip_image002

Choisir Mule : Mule Project

clip_image004

Cliquer Next >

clip_image006

Donner un nom au projet

Cliquer Next >

clip_image008

Ajouter des répertoires sources, des librairies nécessaires (comme pour un projet java Eclipse classique)

Cliquer Finish

Le projet est ainsi crée

clip_image009

Nous remarquons l’existence de

Répertoire

description

src

Mettre les codes sources

Conf

Mettre les fichiers de configuration de Mule

Bin

Contient les .class

Créer une configuration Mule

Sélectionner le projet Mule

Cliquer sur : File à New à other

clip_image011

Choisir Mule configuration

clip_image013

A ce stage, un assistance de création d’entête de Namespaces est disponible, selon les besoins en protocole de transport, en routeurs …

clip_image015

Le résultat est un fichier de configuration Mule (vide) prêt à l’emploi

clip_image017

Le fichier est le suivant :

1:  <?xml version="1.0" encoding="UTF-8"?> 
2: <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
3: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4: xmlns:ftp="http://www.mulesource.org/schema/mule/ftp/2.2"
5: xmlns:file="http://www.mulesource.org/schema/mule/file/2.2"
6: xmlns:http="http://www.mulesource.org/schema/mule/http/2.2"
7: xmlns:https="http://www.mulesource.org/schema/mule/https/2.2"
8: xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
9: xsi:schemaLocation="
10: http://www.mulesource.org/schema/mule/ftp/2.2 http://www.mulesource.org/schema/mule/ftp/2.2/mule-ftp.xsd
11: http://www.mulesource.org/schema/mule/file/2.2 http://www.mulesource.org/schema/mule/file/2.2/mule-file.xsd
12: http://www.mulesource.org/schema/mule/http/2.2 http://www.mulesource.org/schema/mule/http/2.2/mule-http.xsd
13: http://www.mulesource.org/schema/mule/https/2.2 http://www.mulesource.org/schema/mule/https/2.2/mule-https.xsd
14: http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
15: http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd">
16: </mule>


Lancer l’exécution du projet à partir d’Eclipse



Cette version de l’IDE est limité, en terme d’assistant graphique, mais présente l’avantage de permettre de lancer l’exécution du projet à partir de Eclipse et de présenter la capacité de débogage nécessaire à la mise en ouvre de tout projet Java.



Préparer une configuration Mule valide : l’exemple suivant permet de montrer les capacités de Mule qui intègre par exemple le support du Schedular Quartz.



1:  <?xml version="1.0" encoding="UTF-8"?> 
2: <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
3: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4: xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
5: xmlns:quartz="http://www.mulesource.org/schema/mule/quartz/2.2"
6: xmlns:spring="http://www.springframework.org/schema/beans"
7: xsi:schemaLocation="
8: http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
9: http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
10: http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd
11: http://www.mulesource.org/schema/mule/quartz/2.2 http://www.mulesource.org/schema/mule/quartz/2.2/mule-quartz.xsd">
12: <spring:bean id="bonjourOXIA" class="java.lang.String">
13: <spring:constructor-arg>
14: <spring:value><![CDATA[
15: BONJOUR OXIA
16: BONJOUR OXIA
17: BONJOUR OXIA
18: ]]>
19: </spring:value>
20: </spring:constructor-arg>
21: </spring:bean>
22: <model name="bonjouroxiaModel">
23: <service name="bonjourService">
24: <inbound>
25: <quartz:inbound-endpoint jobName="welcome" repeatInterval="3000" repeatCount="1">
26: <property key="payload" value-ref="bonjourOXIA" />
27: <quartz:event-generator-job />
28: </quartz:inbound-endpoint>
29: </inbound>
30: <outbound>
31: <pass-through-router>
32: <stdio:outbound-endpoint system="OUT"/>
33: </pass-through-router>
34: </outbound>
35: </service>
36: </model>
37: </mule>


Sélectionner la configuration Mule



clip_image002[4]




Le serveur est ainsi lancé, sous le contrôle d’Eclispe avec la configuration souhaité






clip_image004[4]

6 commentaires :

Anonyme a dit…

bonjour;
pouvez-vous m'expliquer un autre exemple de utilisation Mule: un client communique avec un service web à travers mule (mule présente comme un médiateur.
merci

Khaled BEN DRISS a dit…

l'exemple existe dans la documentation officiel de Mule sur le site
il suffit d'utiliser la balise cxf ...

Anonyme a dit…

bonsoir,

j'aimerai bien savoir si vous avais une idée sur ce projet: "Intégration jBPM 3 avec Mule"?? j'attend votre réponse. merci

Khaled BEN DRISS a dit…

pour JBPM et Mule
http://www.indoqa.com/people/markus-demolsky/weblog/2008/jBoss-jBPM-meets-ESB.html

et
Why use jBPM with Mule? http://blogs.mulesoft.org/why-use-jbpm-with-mule/

Anonyme a dit…

s'il existe un tutorial comme ca avec netbeans ?? merci

Anonyme a dit…

bonsoir,
voila tout d'abord bravo pour ce blog,

je doit réaliser l'Implémentation de BPEL sur les plate-forme Mule ESB.
cependant je voulais essayer l'exemple de hello World (dans examples), j'ais ajouté le fichier de conf mais lorsque j'exécute un message d'erreur s'affiche : could not find the main class

java.lang.NoClassDefFoundError: and
Caused by: java.lang.ClassNotFoundException: and
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)



voila est ce que vous avez une idée d'où vient le problème?
merci,

Enregistrer un commentaire

Architecte SOA & Professionnel Open Source Headline Animator

 
Khaled BEN DRISS
Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.