You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Harbeer Kadian <ha...@altair.com> on 2010/03/23 15:08:33 UTC
Not able to invoke webservice using http component
Hi,
I deployed a simple webservice on TomCat Server.
I created following route to access the webservice using apache camel.
from("direct:ProducerUri")
.to("http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin");
I created the exchange in the following way
String soapMessage = "<soapenv:Envelope
xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
xmlns:tut=\"http://tutorial.com\"><soapenv:Header/><soapenv:Body><tut:sayHello><tut:name>"
+ "Harbeer Kadian" +
"</tut:name></tut:sayHello></soapenv:Body></soapenv:Envelope>";
XmlConverter xmlConverter = new XmlConverter();
Document input = xmlConverter.toDOMDocument(soapMessage);
exchange.getIn().setBody(input);
exchange.setPattern(ExchangePattern.InOut);
//added this line after seeing no soapAction found error on Tom Cat Server
log
exchange.getIn().setHeader("SOAPAction", "");
exchange = producerTemplate.send("direct:ProducerUri", exchange);
Document output = (Document)exchange.getOut().getBody();
System.out.println(output);
I am getting null as output.
Also on the tom cat server log, no exception is coming.
I have no idea how to invoke webservice using http component.
Please help me.
With Regards
Harbeer Kadian
--
View this message in context: http://old.nabble.com/Not-able-to-invoke-webservice-using-http-component-tp28001459p28001459.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Not able to invoke webservice using http component
Posted by Willem Jiang <wi...@gmail.com>.
Hi,
You can try to use the soap dataformat[1] which is new to Camel 2.3.0.
And you need to download the Camel 2.3.0-SNAPSHOT for it.
[1]http://camel.apache.org/soap.html
Willem
Harbeer Kadian wrote:
> Hi,
> thanks for the reply.
> I did not changed the input soap message into Document and directly sent it.
> I got the soap message reply in the form of String.
> The reply is as follows
> <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><sayHelloResponse
> xmlns="http://tutorial.com"><sayHelloReturn>Hello Harbeer
> Kadian</sayHelloReturn></sayHelloResponse></soapenv:Body></soapenv:Envelope>
>
> Now i want to read this output and change it into java objects, just like
> what a webservice client do.
> Do there are any standard api to do this.
> Or I have to use some sort of XQuery or XSLT Transformer to get the soap
> body.
>
> With Regards
> Harbeer Kadian
>
>
>
> willem.jiang wrote:
>> Yes, if you want to send a request from camel-http endpoint, you just
>> need put the a Sting, InputStream or HttpEntity into to the message
>> body, otherwise camel-http endponit may not send right request to the
>> service.
>>
>> Willem
>>
>> ychawla wrote:
>>> Hi Habeer,
>>> Do you need to do the DOM conversions that you are doing:
>>>
>>> Document input = xmlConverter.toDOMDocument(soapMessage);
>>> exchange.getIn().setBody(input);
>>>
>>> Can't you just set the body to be a string?
>>>
>>> Same with the return message. That might be tripping something up.
>>> Also,
>>> are you able to get to your webservice using a browser/basic auth:
>>>
>>> http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin
>>>
>>> When I was first setting up a web service connection through HTTP, I set
>>> up
>>> a polling folder and result folder and got that working first. I just
>>> made
>>> the entire soap message in a text editor which it looks like you already
>>> have. Then you can set up a simple route to test for web service
>>> connectivity:
>>>
>>> <from uri="file:/tmp/input"/>
>>> <to
>>> uri="http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin"
>>> />
>>> <to uri="file:/tmp/output"/>
>>>
>>> Cheers,
>>> Yogesh
>>>
>>>
>>> Harbeer Kadian wrote:
>>>> Hi,
>>>>
>>>> I deployed a simple webservice on TomCat Server.
>>>> I created following route to access the webservice using apache camel.
>>>>
>>>> from("direct:ProducerUri")
>>>> .to("http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin");
>>>>
>>>> I created the exchange in the following way
>>>> String soapMessage = "<soapenv:Envelope
>>>> xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
>>>> xmlns:tut=\"http://tutorial.com\"><soapenv:Header/><soapenv:Body><tut:sayHello><tut:name>"
>>>> + "Harbeer Kadian" +
>>>> "</tut:name></tut:sayHello></soapenv:Body></soapenv:Envelope>";
>>>> XmlConverter xmlConverter = new XmlConverter();
>>>>
>>>> Document input = xmlConverter.toDOMDocument(soapMessage);
>>>> exchange.getIn().setBody(input);
>>>> exchange.setPattern(ExchangePattern.InOut);
>>>> //added this line after seeing no soapAction found error on Tom Cat
>>>> Server
>>>> log
>>>> exchange.getIn().setHeader("SOAPAction", "");
>>>> exchange = producerTemplate.send("direct:ProducerUri", exchange);
>>>> Document output = (Document)exchange.getOut().getBody();
>>>> System.out.println(output);
>>>>
>>>> I am getting null as output.
>>>> Also on the tom cat server log, no exception is coming.
>>>>
>>>> I have no idea how to invoke webservice using http component.
>>>> Please help me.
>>>>
>>>> With Regards
>>>> Harbeer Kadian
>>>>
>>>>
>>
>>
>
Re: Not able to invoke webservice using http component
Posted by Harbeer Kadian <ha...@altair.com>.
Hi,
thanks for the reply.
I did not changed the input soap message into Document and directly sent it.
I got the soap message reply in the form of String.
The reply is as follows
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><sayHelloResponse
xmlns="http://tutorial.com"><sayHelloReturn>Hello Harbeer
Kadian</sayHelloReturn></sayHelloResponse></soapenv:Body></soapenv:Envelope>
Now i want to read this output and change it into java objects, just like
what a webservice client do.
Do there are any standard api to do this.
Or I have to use some sort of XQuery or XSLT Transformer to get the soap
body.
With Regards
Harbeer Kadian
willem.jiang wrote:
>
> Yes, if you want to send a request from camel-http endpoint, you just
> need put the a Sting, InputStream or HttpEntity into to the message
> body, otherwise camel-http endponit may not send right request to the
> service.
>
> Willem
>
> ychawla wrote:
>> Hi Habeer,
>> Do you need to do the DOM conversions that you are doing:
>>
>> Document input = xmlConverter.toDOMDocument(soapMessage);
>> exchange.getIn().setBody(input);
>>
>> Can't you just set the body to be a string?
>>
>> Same with the return message. That might be tripping something up.
>> Also,
>> are you able to get to your webservice using a browser/basic auth:
>>
>> http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin
>>
>> When I was first setting up a web service connection through HTTP, I set
>> up
>> a polling folder and result folder and got that working first. I just
>> made
>> the entire soap message in a text editor which it looks like you already
>> have. Then you can set up a simple route to test for web service
>> connectivity:
>>
>> <from uri="file:/tmp/input"/>
>> <to
>> uri="http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin"
>> />
>> <to uri="file:/tmp/output"/>
>>
>> Cheers,
>> Yogesh
>>
>>
>> Harbeer Kadian wrote:
>>> Hi,
>>>
>>> I deployed a simple webservice on TomCat Server.
>>> I created following route to access the webservice using apache camel.
>>>
>>> from("direct:ProducerUri")
>>> .to("http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin");
>>>
>>> I created the exchange in the following way
>>> String soapMessage = "<soapenv:Envelope
>>> xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
>>> xmlns:tut=\"http://tutorial.com\"><soapenv:Header/><soapenv:Body><tut:sayHello><tut:name>"
>>> + "Harbeer Kadian" +
>>> "</tut:name></tut:sayHello></soapenv:Body></soapenv:Envelope>";
>>> XmlConverter xmlConverter = new XmlConverter();
>>>
>>> Document input = xmlConverter.toDOMDocument(soapMessage);
>>> exchange.getIn().setBody(input);
>>> exchange.setPattern(ExchangePattern.InOut);
>>> //added this line after seeing no soapAction found error on Tom Cat
>>> Server
>>> log
>>> exchange.getIn().setHeader("SOAPAction", "");
>>> exchange = producerTemplate.send("direct:ProducerUri", exchange);
>>> Document output = (Document)exchange.getOut().getBody();
>>> System.out.println(output);
>>>
>>> I am getting null as output.
>>> Also on the tom cat server log, no exception is coming.
>>>
>>> I have no idea how to invoke webservice using http component.
>>> Please help me.
>>>
>>> With Regards
>>> Harbeer Kadian
>>>
>>>
>>
>
>
>
--
View this message in context: http://old.nabble.com/Not-able-to-invoke-webservice-using-http-component-tp28001459p28013965.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Not able to invoke webservice using http component
Posted by Willem Jiang <wi...@gmail.com>.
Yes, if you want to send a request from camel-http endpoint, you just
need put the a Sting, InputStream or HttpEntity into to the message
body, otherwise camel-http endponit may not send right request to the
service.
Willem
ychawla wrote:
> Hi Habeer,
> Do you need to do the DOM conversions that you are doing:
>
> Document input = xmlConverter.toDOMDocument(soapMessage);
> exchange.getIn().setBody(input);
>
> Can't you just set the body to be a string?
>
> Same with the return message. That might be tripping something up. Also,
> are you able to get to your webservice using a browser/basic auth:
>
> http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin
>
> When I was first setting up a web service connection through HTTP, I set up
> a polling folder and result folder and got that working first. I just made
> the entire soap message in a text editor which it looks like you already
> have. Then you can set up a simple route to test for web service
> connectivity:
>
> <from uri="file:/tmp/input"/>
> <to
> uri="http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin"
> />
> <to uri="file:/tmp/output"/>
>
> Cheers,
> Yogesh
>
>
> Harbeer Kadian wrote:
>> Hi,
>>
>> I deployed a simple webservice on TomCat Server.
>> I created following route to access the webservice using apache camel.
>>
>> from("direct:ProducerUri")
>> .to("http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin");
>>
>> I created the exchange in the following way
>> String soapMessage = "<soapenv:Envelope
>> xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
>> xmlns:tut=\"http://tutorial.com\"><soapenv:Header/><soapenv:Body><tut:sayHello><tut:name>"
>> + "Harbeer Kadian" +
>> "</tut:name></tut:sayHello></soapenv:Body></soapenv:Envelope>";
>> XmlConverter xmlConverter = new XmlConverter();
>>
>> Document input = xmlConverter.toDOMDocument(soapMessage);
>> exchange.getIn().setBody(input);
>> exchange.setPattern(ExchangePattern.InOut);
>> //added this line after seeing no soapAction found error on Tom Cat Server
>> log
>> exchange.getIn().setHeader("SOAPAction", "");
>> exchange = producerTemplate.send("direct:ProducerUri", exchange);
>> Document output = (Document)exchange.getOut().getBody();
>> System.out.println(output);
>>
>> I am getting null as output.
>> Also on the tom cat server log, no exception is coming.
>>
>> I have no idea how to invoke webservice using http component.
>> Please help me.
>>
>> With Regards
>> Harbeer Kadian
>>
>>
>
Re: Not able to invoke webservice using http component
Posted by ychawla <pr...@yahoo.com>.
Hi Habeer,
Do you need to do the DOM conversions that you are doing:
Document input = xmlConverter.toDOMDocument(soapMessage);
exchange.getIn().setBody(input);
Can't you just set the body to be a string?
Same with the return message. That might be tripping something up. Also,
are you able to get to your webservice using a browser/basic auth:
http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin
When I was first setting up a web service connection through HTTP, I set up
a polling folder and result folder and got that working first. I just made
the entire soap message in a text editor which it looks like you already
have. Then you can set up a simple route to test for web service
connectivity:
<from uri="file:/tmp/input"/>
<to
uri="http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin"
/>
<to uri="file:/tmp/output"/>
Cheers,
Yogesh
Harbeer Kadian wrote:
>
> Hi,
>
> I deployed a simple webservice on TomCat Server.
> I created following route to access the webservice using apache camel.
>
> from("direct:ProducerUri")
> .to("http://localhost:8095/WebServiceTutorial/services/Hello?username=admin&password=admin");
>
> I created the exchange in the following way
> String soapMessage = "<soapenv:Envelope
> xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
> xmlns:tut=\"http://tutorial.com\"><soapenv:Header/><soapenv:Body><tut:sayHello><tut:name>"
> + "Harbeer Kadian" +
> "</tut:name></tut:sayHello></soapenv:Body></soapenv:Envelope>";
> XmlConverter xmlConverter = new XmlConverter();
>
> Document input = xmlConverter.toDOMDocument(soapMessage);
> exchange.getIn().setBody(input);
> exchange.setPattern(ExchangePattern.InOut);
> //added this line after seeing no soapAction found error on Tom Cat Server
> log
> exchange.getIn().setHeader("SOAPAction", "");
> exchange = producerTemplate.send("direct:ProducerUri", exchange);
> Document output = (Document)exchange.getOut().getBody();
> System.out.println(output);
>
> I am getting null as output.
> Also on the tom cat server log, no exception is coming.
>
> I have no idea how to invoke webservice using http component.
> Please help me.
>
> With Regards
> Harbeer Kadian
>
>
--
View this message in context: http://old.nabble.com/Not-able-to-invoke-webservice-using-http-component-tp28001459p28003434.html
Sent from the Camel - Users mailing list archive at Nabble.com.