camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: response code in http component
Date Thu, 02 Apr 2009 16:08:19 GMT
Minor change. I renamed the option to throwExceptionOnFailure.


On Thu, Apr 2, 2009 at 4:48 PM, Claus Ibsen <claus.ibsen@gmail.com> wrote:
> Hi Peter
>
> I have created a more simple example
> http://svn.apache.org/viewvc?view=rev&revision=761307
>
> And the wiki page has been updated as well
> http://cwiki.apache.org/confluence/display/CAMEL/HTTP
>
> On Thu, Apr 2, 2009 at 4:02 PM, Claus Ibsen <claus.ibsen@gmail.com> wrote:
>> Hi Peter
>>
>> I have create an unit test to demonstrate this
>> http://svn.apache.org/viewvc?view=rev&revision=761300
>>
>> However I also think it was a bit cumbersome to do it nicely, so I
>> have logged a RFE:
>> https://issues.apache.org/activemq/browse/CAMEL-1512
>>
>> So we can let the http producer return any response in the exchange
>> instead of throwing exceptions for failed error codes.
>>
>>
>> On Thu, Apr 2, 2009 at 3:16 PM, Peter Maas <pfmmaas@gmail.com> wrote:
>>> I've tried to implement your solution, but failed to do so correctly. No
>>> matter where I put the error handler, the route stops processing after
>>> receiving a 404. Could anyone give me an example on how to act on a http 404
>>> response?
>>>
>>>
>>> On Mar 30, 2009, at 16:48 , Claus Ibsen wrote:
>>>
>>>> Hi
>>>>
>>>>
>>>>
>>>> On Mon, Mar 30, 2009 at 4:33 PM, Peter Maas <pfmmaas@gmail.com> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> according to the documentation of the HTTP component it should be
>>>>> possible
>>>>> to retrieve the response code if the call fails. I fail to grasp how
to
>>>>> exactly use this.  I wanted to use the enrich pattern to call an external
>>>>> http based service to enrich the current message:
>>>>>
>>>>>               from("file:src/data")
>>>>>                       .setHeader("id",
>>>>> vpro.xpath("//vpro:schedule/@channel", String.class))
>>>>>                       .enrich("direct:couchdb", new
>>>>> AggregationStrategy(){
>>>>>                               public Exchange aggregate(Exchange
>>>>> original,
>>>>> Exchange resource) {
>>>>>                                       Message responseOut
=
>>>>> resource.getOut();
>>>>>                                       int responseCode
=
>>>>> responseOut.getHeader(HttpConstants.HTTP_RESPONSE_CODE, Integer.class);
>>>>>                                       System.out.println(responseCode
+ "
>>>>> "
>>>>> + responseOut.getBody(String.class));
>>>>>                                       return original;
>>>>>                               }
>>>>>                       }
>>>>>                       )
>>>>>                       .to("...")
>>>>>
>>>>>
>>>>> and in the resource route:
>>>>>
>>>>>               from("direct:couchdb")
>>>>>                       .setBody(constant(""))
>>>>>                       .setHeader("CamelHttpMethod", constant("GET"))
>>>>>                       .setHeader(HttpConstants.HTTP_URI,
>>>>> constant(LOCAL_DB).append(header("id")))
>>>>>                       .to("http://couchdb");
>>>>>
>>>>> The executed HTTP GET arrives at the server as I expected, since it
>>>>> doesn't
>>>>> know the resource it returns a 404. The 404 is thrown as a
>>>>> HttpOperationFailedException which triggers a retry...
>>>>>
>>>>> I'm probably missing something vital, but would really like a push in
the
>>>>> right direction here!
>>>>
>>>> Ah since you use a sub route before doing the actual HTTP invocation
>>>> you should disable the error handler to avoid it doing a retry
>>>> from("direct:crouchdb").errorHandler(noErrorHandler())....
>>>>
>>>> In fact you can configure it as a global to avoid the default error
>>>> handler all together.
>>>>
>>>> Its up for debate in Camel 2.0 how the defaults for error handling should
>>>> be.
>>>>
>>>> We will later start a separate thread for this as a open discussion.
>>>> But we would definitly value the community feedback on this one.
>>>>
>>>>
>>>>>
>>>>> thanks in advance,
>>>>>
>>>>> Peter
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>> Apache Camel Reference Card:
>> http://refcardz.dzone.com/refcardz/enterprise-integration
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
> Apache Camel Reference Card:
> http://refcardz.dzone.com/refcardz/enterprise-integration
>



-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Apache Camel Reference Card:
http://refcardz.dzone.com/refcardz/enterprise-integration

Mime
View raw message