Hello all,

I am using CAMEL 2.15.1 in order to listen to an inbound endpoint, route to
a couple of direct (in order to be sync) outbound endpoints aggregating the
responses with following implementation:

Code from my inbound route:
<code>
def = def
.streamCaching()
        .recipientList()
                .method(router, RecipientListRouter.METHOD_NAME)
                .aggregationStrategy(synchronousAggregationStrategy)
                .convertBodyTo(String.class)
        .end()
.end();
</code>

Code in my synchronousAggregationStrategy:
<code>
if (oldExchange == null) {
Object myBody = CamelHelper.getMessage(newExchange).getBody()
CamelHelper.getMessage(newExchange).setBody(myBody, String.class));
return newExchange;
}
</code>


Code from my inbound routes:
<code>
from("direct:"+ internalEndpoint)
        .streamCaching()
        .etc()
.end();
</code>


The problem is that *myBody* object is instance of
*CachedOutputStream.WrappedInputStream* class and although I can see with
the debugger the desired context in CachedOutputStream.currentStream object,
when it is set to the exchange as a String I get null!

Any ideas? I have put streamCaching() in both my routes (it cannot be set
inside RecipientList's sub-route), I have put convertBodyTo(String.class)
after the aggregation, what else?

Thanks in advance,
Panos





--
View this message in context: 
http://camel.465427.n5.nabble.com/Empty-BODY-after-Aggregation-Strategy-and-convert-to-String-tp5770184.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to