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



On Fri, 2011-04-01 at 01:42 -0700, Willem Jiang wrote:
> Hi Paul,
>
> Can you check the response from the outside server is right.
> I guess the issue of converting the InputStreamCache object to
> Document
> could be caused by the server didn't send the reply message rightly.
>
> Willem
>
> On 4/1/11 4:10 PM, Paul Lowry wrote:
> > Hi Willem,
> >
> > I did what you suggested and got another error...
> >
> > DefaultTypeConverter DEBUG No type converter available to convert
> from
> > type: org.apache.camel.converter.stream.InputStreamCache to the
> required
> > type: org.w3c.dom.Document with value
> > org.apache.camel.converter.stream.InputStreamCache@1cb4cae Caused
> by:
> > org.xml.sax.SAXParseException: Premature end of file.. Will ignore
> this
> > and continue.
> >
> > DefaultErrorHandler DEBUG Failed delivery for exchangeId:
> > 04ff6403-4294-4152-b81e-6c3da8849a26. On delivery attempt: 0 caught:
> > java.lang.ClassCastException:
> > org.apache.camel.converter.stream.InputStreamCache cannot be cast to
> > org.w3c.dom.Node
> >
> > DefaultErrorHandler ERROR Failed delivery for exchangeId:
> > 04ff6403-4294-4152-b81e-6c3da8849a26. Exhausted after delivery
> attempt:
> > 1 caught: java.lang.ClassCastException:
> > org.apache.camel.converter.stream.InputStreamCache cannot be cast to
> > org.w3c.dom.Node
> >
> > But this is OK, because I understand it; I just need to (a) convert
> the
> > body in a processor, or (b) add a new type converter to the http
> > component - right?
> >
> > Regard,
> > Paul
> >
> >
> > On Tue, 2011-03-29 at 22:56 -0700, Willem Jiang wrote:
> >> <removeHeader headerName="CamelHttpUri"/>
> >>   >     <to uri="http://localhost:8080/server"/>
> >
> > STRICTLY PRIVATE, CONFIDENTIAL AND PRIVILEGED COMMUNICATION.
> >
> > This message (including attachments) may contain information that is
> > privileged, confidential or protected from disclosure. They are
> intended
> > solely for the use of the intended recipient. If you are not the
> > intended recipient, you are hereby notified that dissemination,
> > disclosure, copying, distribution, printing, transmission or use of
> this
> > message or any information contained in it is strictly prohibited.
> If
> > you have received this message from NewBay Software in error, please
> > immediately notify the sender by reply email and delete this message
> > from your computer. The content of this e-mail, and any files
> > transmitted with it, may have been changed or altered without the
> > consent of the author. Although we have taken steps to ensure that
> this
> > email and attachments are free from any virus, we advise that in
> keeping
> > with good computing practice the recipient should ensure they are
> > actually virus free.
>
>
> --
> 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
>
>
>


STRICTLY PRIVATE, CONFIDENTIAL AND PRIVILEGED COMMUNICATION.

This message (including attachments) may contain information that is
privileged, confidential or protected from disclosure. They are intended
solely for the use of the intended recipient. If you are not the
intended recipient, you are hereby notified that dissemination,
disclosure, copying, distribution, printing, transmission or use of this
message or any information contained in it is strictly prohibited. If
you have received this message from NewBay Software in error, please
immediately notify the sender by reply email and delete this message
from your computer. The content of this e-mail, and any files
transmitted with it, may have been changed or altered without the
consent of the author. Although we have taken steps to ensure that this
email and attachments are free from any virus, we advise that in keeping
with good computing practice the recipient should ensure they are
actually virus free.

Reply via email to