I'm having problem with the following expression: from("activemq:Integration.Status"). setHeader("Body").el("${in.body}"). setBody().el("${in.headers}"). marshal(). xstream().convertBodyTo(String.class). setBody().el("declare @h uniqueidentifier; "+ "begin dialog conversation @h "+ "from service StatusResponseService "+ "to service 'StatusService' "+ "with encryption=off; "+ "send on conversation @h ('${in.body.replace('\'','\'\'')}'); "). to("jdbc:Status");
The line before last returns Object so it can not be sent "to". I'm trying to serialize a message, including all headers into xml, than craft a sql expression which would contain this xml as a parameter and send it to jdbc endpoint. I spent several hors trying all possible combinations and still have no clue how to do this double body transform. I feel like I need to use "pipeline" pattern but I can not understand what two elements should be inside this pipe. So far I made it working using 2 queues but it feels wrong: from("activemq:Integration.Status"). setHeader("Body").el("${in.body}"). setBody().el("${in.headers}"). marshal(). xstream().convertBodyTo(String.class). to("activemq:Integration.Status2"); from("activemq:Integration.Status2"). setBody().el("declare @h uniqueidentifier; "+ "begin dialog conversation @h "+ "from service StatusResponseService "+ "to service 'StatusService' "+ "with encryption=off; "+ "send on conversation @h ('${in.body.replace('\'','\'\'')}'); "). to("jdbc:Status"); And another question: in "el" this fragment "'${in.body.replace('\'','\'\'')}" gives me an error: syntax error at position 187, encountered ',', expected ')' How can I replace single quote in the body with two single quote chars? Vadim. -- >From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT is explicitly specified