Hi Paul, Cool. It's good to see you find a way to resolve this issue.
Just one more note for the InputStreamCache, if you want to read the body again, you just need to call the method reset() of InputStreamCache.
Willem On 4/1/11 5:49 PM, Paul Lowry wrote:
Hi Willem, My route looks like this: <route id="MyRoute"> <from uri="restlet:http://localhost:9090/client?restletMethod=POST"/> <setHeader headerName="CamelHttpMethod"> <constant>POST</constant> </setHeader> <setHeader headerName="Content-Type"> <constant>text/xml</constant> </setHeader> <removeHeader headerName="CamelHttpUri"/> <to uri="http://localhost:8080/server"/> <process ref="MyResponseProcessor"/> </route> The processor at the end is defined as follows: public class MyResponseProcessor implements Processor { public void process(Exchange exchange) throws Exception { Message message = exchange.getIn(); MyJaxbType response = message.getBody(MyJaxbType.class); ... } } The problem was, the http response is an InputStream, so calling Message.getBody() reads the stream and thus deletes it. I fixed it by adding the following line to the end of the processor: message.setBody(response, MyJaxbType.class); So now all is good! Thanks, Paul
-- Willem ---------------------------------- FuseSource Web: http://www.fusesource.com Blog: http://willemjiang.blogspot.com (English) http://jnn.javaeye.com (Chinese) Twitter: willemjiang Connect at CamelOne May 24-26 The Open Source Integration Conference http://camelone.com
