Hi, I'm trying to make a synchronous call to an activemq sending a body
right after I process some rest service invocation. Here is my code:

some process here.. sent to this route.

private String velocitySetThirdPartyTemplate =
"velocity:file://url/velocity/file/SetThirdParty_Template.vm";

from("direct:QueueThirdParty")
                .process(new ProcessThirdPartyError())
                .marshal()
                .xstream("UTF-8")
// wait for the body when the response of the Web Service is 200 ok
                .to(ExchangePattern.InOut,"jms:queue:CreateThirdParty")
                .to("activemq:queue:somequeue");

from("jms:queue:CreateThirdParty")
                .transacted()
                .unmarshal()
                .xstream()
                .process(new SetBodyThirdParty())->this route define body
as an ArrayList of Pojo
                .split(body())
                .to(velocitySetThirdPartyTemplate)->this velocity make the
json required for the Web Service
                .process(new RestHeadersSetThirdParty())
                .to("restlet:<a href="http://ip:port
/Web/Service/url">http://ip:port/Web/Service/url";
                                        +
"?restletMethod=post&throwExceptionOnFailure")
                .process(new ResponseProcess())
                .log("response ${in.body.getStatus().getCode()}")
                .process(new SetExchangeInOutBody()); -> this final process
set the body that I want to                                            send
to the activemq in that is waiting for the reply.

the problem is that the body that is sending to the end point
"activemq:queue:somequeue" after waiting for a reply is the ArrayList of
POJO before the split.

Any Idea of how to send the body of the ".process(new
SetExchangeInOutBody());" that is the one I need.

Thanks in advance.

Daniel Felipe Arias.

Reply via email to