Nous allons faire nos premiers pas en développant un bundle OSGi basé sur Spring et Camel sans utiliser Maven (utilisation de ANT). Dans cet exemple, nous allons créer un bundle qui attend une requête GET HTTP, qui trace le contenu dans un fichier et retourne une page Web au navigateur. Il s’agit d’un exemple sans JSP et sans servlet.
Environnement
Il vous faudra Eclipse, le SDK Java, Fuse, Camel 2.4 et vos doigts. Dans la console Karaf de Fuse, il faudra installer un composant supplémentaire : camel-jetty. Pour se faire, vous pouvez taper la commande : features:install camel-jetty. En cas de problème du genre :
1
URL [mvn:org.apache.camel/camel-http/2.2.0-fuse-02-00] could not be resolved
Il faudra placer les jars de Camel à la main, ça se fait simplement en créant l’arborescence suivante :
Explication : la requête HTTP sera attrapée par le composant Jetty à partir de l’instruction from, la requête HTTPRequest est passée à un processeur. Puis le résultat du processeur est enregistré dans un fichier (attention, un simple / en début de path indique un path absolu, un double / indique un path relatif. Puis le message continue son chemin vers un bean Java et le résultat de ce bean sera le corps de HTTPResponse.
Dans ce fichier, nous déclarons la route et le bean.
Déploiement et test
Il faut lancer la tâche ANT all pour que le bundle se compile, se package en jar et se dépose dans /opt/apache-servicemix/deploy. Si Fuse est démarré, le bundle se déploie automatiquement. Pour le tester, il suffit d’utiliser l’url : http://localhost:8181/httpTest/index.jsp?name=toto.
Normalement, vous devriez voir “Hello toto” dans votre navigateur et le fichier /home/giwi/temp/toto.txt doit contenir la chaîne “toto”.