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