Hi Willem,
I have found that a simple way to do this is as below, I need to read up
more on SOAP to understand why the recommended approach using CXF is
failing. But for now this might be suitable.
Why this works is still unclear, I was imagining that jetty could be used
as a consumer or producer, but in this route it's a processor, but a
producer is a processor, so I guess that is why it works.
package temp.test;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
public class JettyRoute {
public static void main(String[] args) throws Exception {
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder(){
public void configure(){
from("file://temp/soap/request?fileName=soap.xml&noop=true")
.convertBodyTo(String.class,"UTF-8")
.setHeader(Exchange.HTTP_METHOD,constant("POST"))
.setHeader(Exchange.CONTENT_TYPE,constant("text/xml"))
.to("jetty:http://xml.rothco.com/xmlfeed.asmx")
.to("file://temp/soap/response?fileName=soap.xml");
}
});
context.start();
Thread.sleep(5000);
context.stop();
}
}
On Sun, May 4, 2014 at 11:19 PM, Willem Jiang <[email protected]>wrote:
> You can user camel-jetty component to build up a proxy for you.
> It just redirect the request( it could be GET request or POST request) to
> the back end service, the request body can be send the back end service as
> well.
>
> --
> Willem Jiang
>
> Red Hat, Inc.
> Web: http://www.redhat.com
> Blog: http://willemjiang.blogspot.com (English)
> http://jnn.iteye.com (Chinese)
> Twitter: willemjiang
> Weibo: 姜宁willem
>
>
>
> On May 4, 2014 at 9:15:21 PM, Stephen Cameron ([email protected])
> wrote:
> > Hi,
> >
> > I thought to try doing a simple HTTP POST to a web-service using Camel.
> >
> > My understanding is that this is a Jetty endpoint acting as a Consumer, I
> > simply pass the URL of the webservice to getting and process the response
> > as the start of my route.
> >
> > But how can I do a POST and set the body of the request that Jetty sends
> to
> > the (producer) web-service to be the content of an XML file?
> >
> > [This relates to my previous issue with CXF, I was hoping to sidestep CXF
> > for a brief moment, but nothing is simple]
> >
>
>