2012-10-17 6 views
1

que quelqu'un connait un exemple que des ponts ActiveMQ à CXF? J'ai vu de nombreux exemples qui connectent un WebService à une file d'attente de messages, mais j'en ai besoin dans l'autre sens. Les messages d'une file d'attente JMS doivent être transmis à un service Web et le résultat renvoyé à l'appelant.Comment connecter ActiveMQ à CXF avec Apache Camel

Ma première approche ne fonctionne que pour les services Web qui exposent une seule méthode:

from("activemq:wsa").to("cxf:bean:webServiceA"); 

Status msg = producerTemplate.requestBody("activemq:wsa", params, Status.class); 

Mais pour les services Web qui ont plus d'une méthode, un des résultats d'appels similaires dans un ExchangeTimedOutException. Néanmoins, je peux voir que la demande est transmise au service Web et la bonne réponse est renvoyée. Mais malheureusement, il se perd au retour.

Tout conseils ou des liens vers des ressources externes sont appréciés.

bien des égards, Jakob

Répondre

0

ActiveMQ JMS et les appels sont un défaut de façon, vous pouvez spécifier à être synchrone.

http://camel.apache.org/jms.html#JMS-RequestreplyoverJMS

Autre que cela, il ne devrait pas être différent d'utiliser ActiveMQ comme entrée pour les producteurs CXF.

Une suggestion est de télécharger la source Camel et regarder dans ce dossier:

\ composants \ chameau CxF \ src \ test \ java \ org \ composante apache \ camel \ \ CxF

(ou par Internet: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/)

Vous aurez une énorme quantité de cas de test producteur CXF, regarder comme matériel de référence.

+0

requestBody du ProducerTemplate définit la MEP InOut, de sorte que ce n'est pas la raison. Et il devrait être des notes que le premier exemple fonctionne. C'est juste, cela ne fonctionne que pour les services Web avec une seule méthode (nomOpération) et non pour les services Web avec plusieurs méthodes. – jkob

0

Le problème se produit lorsqu'un service Web retourne des objets de classes qui ne mettent pas en œuvre l'interface sérialisable, même si ces classes sont sérialisables.

Implémentation de l'interface sérialisable résout le problème.