camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Srivatsa Katta <vatsa.ka...@gmail.com>
Subject Re: HTTP component throwing IllegalArgumentException in M3 release.
Date Fri, 21 Aug 2009 07:32:14 GMT

Have raised a jira Issue for this
https://issues.apache.org/activemq/browse/CAMEL-1925



Srivatsa Katta wrote:
> 
> Hi,
> 
> Yeah removing the header CamelHttpUri before routing to http endpoint did
> work, because if this header is not present the httpProducer picks up the
> uri from the endpoint itself which is set to the right uri.
> 
> Thanks and will raise a jira ticket for this.
> 
> Cheers!!
> Katta
> 
> 
> 
> Claus Ibsen-2 wrote:
>> 
>> Hi
>> 
>> Thanks for the findings. Can you try removing those headers, you can
>> use .removeHeader to get rid of them.
>> 
>> And create a ticket in JIRA so we can fix it in 2.1 that bridging HTTP
>> related endpoints works.
>> We may need to add some headers so Camel knows you want to bridge them
>> to avoid using special headers or wrap return codes etc.
>> 
>> 
>> On Thu, Aug 20, 2009 at 6:30 PM, Srivatsa Katta<vatsa.katta@gmail.com>
>> wrote:
>>>
>>> Hi,
>>>
>>> Was debugging through this issue, and below are my observations.
>>>
>>> Lets say I am using this url (http://localhost:6666/customers/accounts)
>>> from
>>> the client to post
>>>
>>> 1. In HttpProducer class when I inspected the Camel Exchange In Headers,
>>> noticed both CamelHttpUri and CamelHttpPath headers having the same
>>> value.
>>> eg: /customers/accounts
>>>
>>> And in the  protected HttpMethod createMethod(Exchange exchange) an uri
>>> is
>>> being constructed by concatenating CamelHttpUri  +  CamelHttpPath,
>>>  which
>>> means in this example uri becomes /customers/accounts/customers/accounts
>>> and
>>> this same uri is being used to construct
>>> org.apache.commons.httpclient.HttpMethod which of course is not
>>> constructed
>>> with the right uri and hence fields like host and all in the HttpMethod
>>> object is not set properly, I suspect this could be the problem.
>>>
>>> Wouldn't the camel header (CamelHttpUri ) in the exchange should have
>>> been
>>> ideally set to http://localhost:6666, which would have resulted in the
>>> right
>>> uri being constructed.
>>>
>>> But wasn't sure where these camel headers are being set in the
>>> exchanges.
>>>
>>> Does it makes any sense to any of the camel contributors ??
>>>
>>> Cheers!!
>>> Katta
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Srivatsa Katta wrote:
>>>>
>>>> Hi,
>>>>
>>>> Find the trace below.
>>>>
>>>> java.lang.IllegalArgumentException: host parameter is null
>>>>       at
>>>> org.apache.commons.httpclient.HttpConnection.<init>(HttpConnection.java:206)
>>>>       at
>>>> org.apache.commons.httpclient.HttpConnection.<init>(HttpConnection.java:155)
>>>>       at
>>>> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionWithReference.<init>(MultiThreadedHttpConnectionManager.java:1145)
>>>>       at
>>>> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ConnectionPool.createConnection(MultiThreadedHttpConnectionManager.java:762)
>>>>       at
>>>> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:476)
>>>>       at
>>>> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:416)
>>>>       at
>>>> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153)
>>>>       at
>>>> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
>>>>       at
>>>> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
>>>>       at
>>>> org.apache.camel.component.http.HttpProducer.executeMethod(HttpProducer.java:147)
>>>>       at
>>>> org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:74)
>>>>       at
>>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
>>>>       at
>>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:63)
>>>>       at
>>>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
>>>>       at
>>>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
>>>>       at
>>>> org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
>>>>       at
>>>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
>>>>       at
>>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
>>>>       at
>>>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
>>>>       at
>>>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
>>>>       at
>>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
>>>>       at
>>>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
>>>>       at
>>>> org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:51)
>>>>       at
>>>> org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
>>>>       at
>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
>>>>       at
>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
>>>>       at
>>>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
>>>>       at
>>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
>>>>       at
>>>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
>>>>       at
>>>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
>>>>       at
>>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
>>>>       at
>>>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
>>>>       at
>>>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
>>>>       at
>>>> org.apache.camel.component.http.CamelServlet.service(CamelServlet.java:58)
>>>>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>       at
>>>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
>>>>       at
>>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
>>>>       at
>>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>>       at
>>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>>>>       at
>>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>>>>       at org.mortbay.jetty.Server.handle(Server.java:326)
>>>>       at
>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
>>>>       at
>>>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
>>>>       at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
>>>>       at
>>>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
>>>>       at
>>>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>>>>       at
>>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>>>>       at
>>>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
>>>>
>>>>
>>>>
>>>> Claus Ibsen-2 wrote:
>>>>>
>>>>> Can you post the stacktrace
>>>>>
>>>>> On Thu, Aug 20, 2009 at 9:17 AM, Srivatsa Katta<vatsa.katta@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have the following routes defined in my application.
>>>>>>
>>>>>>
>>>>>> from("jetty:http://0.0.0.0:6666?matchOnUriPrefix=true")
>>>>>>
>>>>>> .to("http://localhost:8899?throwExceptionOnFailure=false");
>>>>>> from("jetty:http://0.0.0.0:8899?matchOnUriPrefix=true").to("cxfbean:customerCXFService");
>>>>>>
>>>>>>
>>>>>> Basically the first endpoint (6666) is just routing/redirecting to
>>>>>> the
>>>>>> second end point (8899).
>>>>>>
>>>>>> When the client uses the endpoint (8899) directly, it works fine.
But
>>>>>> when
>>>>>> the client uses the endpoint 6666, it has to ideally route it to
8899
>>>>>> and
>>>>>> then return the result but then it throws IllegalArgumentException
>>>>>> host
>>>>>> parameter is null.
>>>>>>
>>>>>> The same route configuration works fine in the 2.0 M2 release,
>>>>>> started
>>>>>> choking after I upgraded to M3 release.
>>>>>>
>>>>>> Any help appreciated.
>>>>>>
>>>>>> Cheers!!
>>>>>> Katta
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://www.nabble.com/HTTP-component-throwing-IllegalArgumentException-in-M3-release.-tp25057133p25057133.html
>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Claus Ibsen
>>>>> Apache Camel Committer
>>>>>
>>>>> Open Source Integration: http://fusesource.com
>>>>> Blog: http://davsclaus.blogspot.com/
>>>>> Twitter: http://twitter.com/davsclaus
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/HTTP-component-throwing-IllegalArgumentException-in-M3-release.-tp25057133p25065484.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>> 
>> 
>> 
>> -- 
>> Claus Ibsen
>> Apache Camel Committer
>> 
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/HTTP-component-throwing-IllegalArgumentException-in-M3-release.-tp25057133p25075424.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message