I found the answer finally - returning SOAP response with empty body is
caused by using the "try ... catch .. finally" camel DSL.
I regret not having mentioned using this DSL in previous posts.
According to my test, in the following, Route A returns a non-empty SOAP
message to the client correctly; Route B will return a SOAP message with
empty body, which is the wrong case I asked for help previously:
(Note that I replaced the < and > symbols with parentheses.)
Route A:
(camel:camelContext id="camelContext")
(camel:route streamCache="true")
(camel:from uri="cxf:bean:serviceEndpoint" /)
(camel:process ref="dummyProcessor" /)
(camel:process ref="endProcessor" /)
(/camel:route)
(/camel:camelContext)
Route B:
(camel:camelContext id="camelContext")
(camel:route streamCache="true")
(camel:from uri="cxf:bean:serviceEndpoint" /)
(camel:doTry)
(camel:process ref="dummyProcessor" /)
(camel:doCatch)
(camel:exception)java.lang.Exception(/camel:exception)
(camel:handled)
(camel:constant)true(/camel:constant)
(/camel:handled)
(camel:process ref="errorProcessor" /)
(/camel:doCatch)
(camel:doFinally)
(camel:process ref="endProcessor" /)
(/camel:doFinally)
(/camel:doTry)
(/camel:route)
(/camel:camelContext)
In the above, dummyProcessor and errorProcessor have empty process() method;
endProcessor set the response to client by
exchange_.getOut().setBody(cxfPayload).
Why Route B returns empty SOAP message while Route A does not?
--
View this message in context:
http://camel.465427.n5.nabble.com/How-to-Get-SOAP-Response-from-the-Last-Camel-Processor-in-the-Route-tp4127850p4270601.html
Sent from the Camel - Users mailing list archive at Nabble.com.