You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by gnanda <gi...@phaseforward.com> on 2010/04/23 20:45:56 UTC
smx:camel: receiving http response
Hi all,
I am using camel to read a message from a Q sending to a HTTP
my route is as below
from("jmstx:queue:spq2").bean(myBean,"setLocationUrI")
.recipientList(header(HttpProducer.HTTP_URI));
I need to recive response code from the above http URI.
I need to make sure I receive 200 or 202 to declare as a success call. How
would I receive the response code ?
Do I need to make the mep as in-out while sending exchange to external web
service thru http endpoint to get the return code?
Please suggest
--
View this message in context: http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28345025.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: smx:camel: receiving http response
Posted by gnanda <gi...@phaseforward.com>.
Thank you very much. It worked. I got the http response printed in my log
file
Gert Vanthienen wrote:
>
> L.S.,
>
> I think you would have to work with the 'in' message in your bean
> processor. Because the bean is in a pipeline, it will receive the
> output from the previous processing step in the 'in' message rather
> than in the 'out' message.
>
> Regards,
>
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
>
>
>
> On 26 April 2010 18:48, gnanda <gi...@phaseforward.com> wrote:
>>
>> I tried to log response code by adding a bean class to my flow
>> from("jmstx:queue:spq2").bean(myBean,"setLocationUrI")
>> .recipientList(header(HttpProducer.HTTP_URI)).bean(myBean,"printResponse");
>> in the printResponse() method I have below code
>>
>> log.info("MyBeanProcessor - Calling printResponse");
>> log.info("MyBeanProcessor -exchange.isFailed():" +
>> exchange.isFailed());
>> Message out = exchange.getOut(); // giving
>> nullpointerexception
>> Object val =
>> out.getHeader(HttpProducer.HTTP_RESPONSE_CODE);
>> if (val != null) {
>> log.info("MyBeanProcessor -val NOT null");
>> } else {
>> log.info("MyBeanProcessor -val null");
>> }
>>
>> it is printing "val null"
>> How would I recieve the resaponse code from http call? Do I need create
>> an
>> interceptor code? Please suggest. Any sample will be very helpful
>>
>>
>>
>> gnanda wrote:
>>>
>>> Thanks for the reply. In my scenario, the call to http is a an async
>>> call
>>> where the external webservice does not return any reply back. But it
>>> would
>>> just return me the status code whether accepted or not (200). I think I
>>> need to write an interceptor code for this, but not sure how to write it
>>> Any sample code or document will be very helpful
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> On Fri, Apr 23, 2010 at 8:45 PM, gnanda
>>>> <gi...@phaseforward.com> wrote:
>>>>>
>>>>> Hi all,
>>>>> I am using camel to read a message from a Q sending to a HTTP
>>>>> my route is as below
>>>>> from("jmstx:queue:spq2").bean(myBean,"setLocationUrI")
>>>>> .recipientList(header(HttpProducer.HTTP_URI));
>>>>>
>>>>> I need to recive response code from the above http URI.
>>>>> I need to make sure I receive 200 or 202 to declare as a success call.
>>>>> How
>>>>> would I receive the response code ?
>>>>> Do I need to make the mep as in-out while sending exchange to external
>>>>> web
>>>>> service thru http endpoint to get the return code?
>>>>>
>>>>
>>>> Since you only send to 1 endpoint in RecipientList, then Camel will
>>>> return the last exchange as reply.
>>>>
>>>> So simply just continue routing after the recipient list, where you
>>>> can check for the 200/202 codes.
>>>>
>>>> If you send to multiple endpoints in recipient list you can use an
>>>> AggregationStrategy to merge the results together.
>>>>
>>>>
>>>>> Please suggest
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28345025.html
>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28367318.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
>
>
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
>
--
View this message in context: http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28367595.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: smx:camel: receiving http response
Posted by Gert Vanthienen <ge...@gmail.com>.
L.S.,
I think you would have to work with the 'in' message in your bean
processor. Because the bean is in a pipeline, it will receive the
output from the previous processing step in the 'in' message rather
than in the 'out' message.
Regards,
Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/
On 26 April 2010 18:48, gnanda <gi...@phaseforward.com> wrote:
>
> I tried to log response code by adding a bean class to my flow
> from("jmstx:queue:spq2").bean(myBean,"setLocationUrI")
> .recipientList(header(HttpProducer.HTTP_URI)).bean(myBean,"printResponse");
> in the printResponse() method I have below code
>
> log.info("MyBeanProcessor - Calling printResponse");
> log.info("MyBeanProcessor -exchange.isFailed():" + exchange.isFailed());
> Message out = exchange.getOut(); // giving nullpointerexception
> Object val = out.getHeader(HttpProducer.HTTP_RESPONSE_CODE);
> if (val != null) {
> log.info("MyBeanProcessor -val NOT null");
> } else {
> log.info("MyBeanProcessor -val null");
> }
>
> it is printing "val null"
> How would I recieve the resaponse code from http call? Do I need create an
> interceptor code? Please suggest. Any sample will be very helpful
>
>
>
> gnanda wrote:
>>
>> Thanks for the reply. In my scenario, the call to http is a an async call
>> where the external webservice does not return any reply back. But it would
>> just return me the status code whether accepted or not (200). I think I
>> need to write an interceptor code for this, but not sure how to write it
>> Any sample code or document will be very helpful
>>
>>
>> Claus Ibsen-2 wrote:
>>>
>>> On Fri, Apr 23, 2010 at 8:45 PM, gnanda
>>> <gi...@phaseforward.com> wrote:
>>>>
>>>> Hi all,
>>>> I am using camel to read a message from a Q sending to a HTTP
>>>> my route is as below
>>>> from("jmstx:queue:spq2").bean(myBean,"setLocationUrI")
>>>> .recipientList(header(HttpProducer.HTTP_URI));
>>>>
>>>> I need to recive response code from the above http URI.
>>>> I need to make sure I receive 200 or 202 to declare as a success call.
>>>> How
>>>> would I receive the response code ?
>>>> Do I need to make the mep as in-out while sending exchange to external
>>>> web
>>>> service thru http endpoint to get the return code?
>>>>
>>>
>>> Since you only send to 1 endpoint in RecipientList, then Camel will
>>> return the last exchange as reply.
>>>
>>> So simply just continue routing after the recipient list, where you
>>> can check for the 200/202 codes.
>>>
>>> If you send to multiple endpoints in recipient list you can use an
>>> AggregationStrategy to merge the results together.
>>>
>>>
>>>> Please suggest
>>>>
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28345025.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Claus Ibsen
>>> Apache Camel Committer
>>>
>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>> Open Source Integration: http://fusesource.com
>>> Blog: http://davsclaus.blogspot.com/
>>> Twitter: http://twitter.com/davsclaus
>>>
>>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28367318.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
Re: smx:camel: receiving http response
Posted by gnanda <gi...@phaseforward.com>.
I tried to log response code by adding a bean class to my flow
from("jmstx:queue:spq2").bean(myBean,"setLocationUrI")
.recipientList(header(HttpProducer.HTTP_URI)).bean(myBean,"printResponse");
in the printResponse() method I have below code
log.info("MyBeanProcessor - Calling printResponse");
log.info("MyBeanProcessor -exchange.isFailed():" + exchange.isFailed());
Message out = exchange.getOut(); // giving nullpointerexception
Object val = out.getHeader(HttpProducer.HTTP_RESPONSE_CODE);
if (val != null) {
log.info("MyBeanProcessor -val NOT null");
} else {
log.info("MyBeanProcessor -val null");
}
it is printing "val null"
How would I recieve the resaponse code from http call? Do I need create an
interceptor code? Please suggest. Any sample will be very helpful
gnanda wrote:
>
> Thanks for the reply. In my scenario, the call to http is a an async call
> where the external webservice does not return any reply back. But it would
> just return me the status code whether accepted or not (200). I think I
> need to write an interceptor code for this, but not sure how to write it
> Any sample code or document will be very helpful
>
>
> Claus Ibsen-2 wrote:
>>
>> On Fri, Apr 23, 2010 at 8:45 PM, gnanda
>> <gi...@phaseforward.com> wrote:
>>>
>>> Hi all,
>>> I am using camel to read a message from a Q sending to a HTTP
>>> my route is as below
>>> from("jmstx:queue:spq2").bean(myBean,"setLocationUrI")
>>> .recipientList(header(HttpProducer.HTTP_URI));
>>>
>>> I need to recive response code from the above http URI.
>>> I need to make sure I receive 200 or 202 to declare as a success call.
>>> How
>>> would I receive the response code ?
>>> Do I need to make the mep as in-out while sending exchange to external
>>> web
>>> service thru http endpoint to get the return code?
>>>
>>
>> Since you only send to 1 endpoint in RecipientList, then Camel will
>> return the last exchange as reply.
>>
>> So simply just continue routing after the recipient list, where you
>> can check for the 200/202 codes.
>>
>> If you send to multiple endpoints in recipient list you can use an
>> AggregationStrategy to merge the results together.
>>
>>
>>> Please suggest
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28345025.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
>
--
View this message in context: http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28367318.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: smx:camel: receiving http response
Posted by gnanda <gi...@phaseforward.com>.
Thanks for the reply. In my scenario, the call to http is a an async call
where the external webservice does not return any reply back. But it would
just return me the status code whether accepted or not (200). I think I need
to write an interceptor code for this, but not sure how to write it Any
sample code or document will be very helpful
Claus Ibsen-2 wrote:
>
> On Fri, Apr 23, 2010 at 8:45 PM, gnanda
> <gi...@phaseforward.com> wrote:
>>
>> Hi all,
>> I am using camel to read a message from a Q sending to a HTTP
>> my route is as below
>> from("jmstx:queue:spq2").bean(myBean,"setLocationUrI")
>> .recipientList(header(HttpProducer.HTTP_URI));
>>
>> I need to recive response code from the above http URI.
>> I need to make sure I receive 200 or 202 to declare as a success call.
>> How
>> would I receive the response code ?
>> Do I need to make the mep as in-out while sending exchange to external
>> web
>> service thru http endpoint to get the return code?
>>
>
> Since you only send to 1 endpoint in RecipientList, then Camel will
> return the last exchange as reply.
>
> So simply just continue routing after the recipient list, where you
> can check for the 200/202 codes.
>
> If you send to multiple endpoints in recipient list you can use an
> AggregationStrategy to merge the results together.
>
>
>> Please suggest
>>
>> --
>> View this message in context:
>> http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28345025.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>
>
--
View this message in context: http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28365033.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: smx:camel: receiving http response
Posted by Claus Ibsen <cl...@gmail.com>.
On Fri, Apr 23, 2010 at 8:45 PM, gnanda
<gi...@phaseforward.com> wrote:
>
> Hi all,
> I am using camel to read a message from a Q sending to a HTTP
> my route is as below
> from("jmstx:queue:spq2").bean(myBean,"setLocationUrI")
> .recipientList(header(HttpProducer.HTTP_URI));
>
> I need to recive response code from the above http URI.
> I need to make sure I receive 200 or 202 to declare as a success call. How
> would I receive the response code ?
> Do I need to make the mep as in-out while sending exchange to external web
> service thru http endpoint to get the return code?
>
Since you only send to 1 endpoint in RecipientList, then Camel will
return the last exchange as reply.
So simply just continue routing after the recipient list, where you
can check for the 200/202 codes.
If you send to multiple endpoints in recipient list you can use an
AggregationStrategy to merge the results together.
> Please suggest
>
> --
> View this message in context: http://old.nabble.com/smx%3Acamel%3A-receiving-http-response-tp28345025p28345025.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
--
Claus Ibsen
Apache Camel Committer
Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus