Bonjour à tous,
Je ne suis pas bien sûr d'être dans le bon forum, mais je n'en trouve pas qui se rapproche de Camel... j'ai pensé qu'ici...Bref !
J'ai un WS qui doit envoyer un message à Camel pour que celui-ci renvoie vers un service métier.
Il s'agît d'un échange InOut.
Le WS service reçoit 2 paramètres (que je lis sans problème) et doit les renvoyer tous les 2 au service métier via Camel.
J'ai donc le code ci-dessous :
Avec la déclaration de route suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // Envoie du message à Camel pour redirection vers le service // métier. ProducerTemplate template = context.createProducerTemplate(); List<Object> params = new ArrayList<Object>(); params.add(10); params.add("toto"); result = template.requestBody("direct:metafluxMessage", // C'est ici la ligne des logs : fr.gouv.agriculture.metaflux.services.impl.MetafluxWSImpl.initTraitement(MetafluxWSImpl.java:61) params, TraitementFluxGlobal.class);
Et la trace d'erreur suivante quand je passe sur "template.requestBody" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 from("direct:metafluxMessage").to("direct:initTraitementGlobal"); // TODO utiliser l'interface ci-dessous. --> Voir comment // utiliser Spring pour faire le mapping avec l'implémentation from("direct:initTraitementGlobal").bean( ServiceMetafluxImpl.class, "initTraitement(int, String)");Bien sûr, si je ne passe qu'un seul paramètre à Camel, donc sans la liste, et que mon service métier n'attend qu'un seul paramètre (String ou int, peu importe), tout marche, et j'ai bien mon aller-retour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 'initTraitement d'
J'ai un peu du mal à comprendre, d'autant que l'idée de la liste vient directement du livre "Camel in Action", rédigé par les développeurs de Camel !
Bref, si l'un de vous a des idées pour m'aider à avancer sur le sujet, je suis preneur.
Par avance, Merci.








Répondre avec citation
Partager