I would even propose to use:
template = camelContext.createProducerTemplate();
template.sendBody("direct:requestWebservice",
"<?xml version=\"1.0\" encoding=\"utf-8\"?> ....");

Christian



Am 29.04.2011 10:38, schrieb Willem Jiang:
Hi,

You can put the request into the message body instead of using setBody
DSL. Here is the code snippet.

         template.send("direct:requestWebservice", new Processor() {

              public void process(Exchange exchange) throws Exception {
                  exchange.getIn().setBody("<?xml version=\"1.0\"
encoding=\"utf-8\"?>  ....");
              }

          });
On 4/29/11 3:23 PM, Michael Prieß wrote:
Hello,

I like to request some data from a soap service and after receiving
the response I like to convert the received data in another route. But
I not understand how to use the http component to send a http request
to the server. Is this the right way to do that?

      <route id="Webservice" autoStartup="true">
        <from uri="direct:requestWebservice" />
        <setBody><constant><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
    <soap:Body />
</soap:Envelope>]]></constant></setBody>
        <setHeader headerName="Content-Type">
          <constant>text/xml;</constant>
        </setHeader>
        <setHeader headerName="CamelHttpMethod">
          <constant>POST</constant>
        </setHeader>
        <to 
uri="http://myserver.com?authUsername=myuser&amp;authPassword=myPassword&amp;authMethod=Basic";
/>
        <to uri="file://d:/opt/output" />
      </route>

Regards,

Michael




--
Christian Schneider
CXF and Camel Architect
SOPERA - The Application Integration Division of Talend
http://www.talend.com

Reply via email to