- 
        1. Re: camel-http4 component setting redirect to offdavsclaus Mar 8, 2011 1:37 AM (in response to hhasting)Check the Apache Http Client 4.x documentation about redirects. The stacktrace you posted seems like CXF related. Try using a simple test and have a simulated server return redirect code such as 301. 
- 
        2. Re: camel-http4 component setting redirect to offnjiang Mar 8, 2011 7:52 PM (in response to hhasting)We need more information about the route. According to the stack trace, I can't tell why CXF is getting involved. BTW, did you have a chance to change the camel-http4 endpoint to camel-http endpoint ? I just want to make sure the other part of route is working rightly. Willem 
- 
        3. Re: camel-http4 component setting redirect to offhhasting Mar 8, 2011 8:08 PM (in response to hhasting)Hi Willem To remove the cxf part I've changed the camel context to have two routes a quartz route which calls the other route to do the http call. Route below: <from uri="quartz://scripts/quartzRoute?cron=0*+*?&job.name=quartzRoute"/> Basically I need to call https://shopfront3.telstra.com.au:443/LOLOSTGBb2b/services/ActivityHistoryService and I should get back a redirect location however as soon as I have httpClient.handleRedirects=false I get Camel Thread 0 - seda://foo] SedaConsumer ERROR Error processing exchange. Exchange[Message: ]. Caused by: java.net.SocketException: Socket Closed at java.net.PlainSocketImpl.setOption(PlainSocketImpl.java:201) at java.net.Socket.setSoTimeout(Socket.java:1017) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.setSoTimeout(SSLSocketImpl.java:2107) at org.apache.http.impl.io.SocketInputBuffer.isDataAvailable(SocketInputBuffer.java:145) at org.apache.http.impl.io.IdentityInputStream.available(IdentityInputStream.java:74) at org.apache.http.conn.EofSensorInputStream.available(EofSensorInputStream.java:171) at org.apache.camel.util.IOHelper.copy(IOHelper.java:90) at org.apache.camel.util.IOHelper.copy(IOHelper.java:86) at org.apache.camel.component.http4.HttpProducer.doExtractResponseBody(HttpProducer.java:228) at org.apache.camel.component.http4.HttpProducer.extractResponseBody(HttpProducer.java:220) at org.apache.camel.component.http4.HttpProducer.populateHttpOperationFailedException(HttpProducer.java:138) at org.apache.camel.component.http4.HttpProducer.process(HttpProducer.java:92) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:106) at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:103) at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:189) at org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:103) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:87) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:97) at org.apache.camel.processor.interceptor.HandleFaultInterceptor.process(HandleFaultInterceptor.java:47) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:97) at org.apache.camel.processor.interceptor.HandleFaultInterceptor.process(HandleFaultInterceptor.java:47) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.Pipeline.process(Pipeline.java:75) at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70) at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:160) at org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:108) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) I have run it in debug with a breakpoint in org.apache.http.client.params.HttpClientParams and the parameters are coming across ok static = org.apache.http.client.params.HttpClientParams params = {org.apache.http.impl.client.ClientParamsStack@4506} applicationParams = null clientParams = {org.apache.http.params.BasicHttpParams@3870} parameters = {java.util.HashMap@4532} size = 4 = {java.util.HashMap$Entry@4545} http.connection.stalecheck -> false key: java.lang.String = {java.lang.String@4549}"http.connection.stalecheck" value: java.lang.Boolean = {java.lang.Boolean@4553}"false" = {java.util.HashMap$Entry@4558} http.socket.timeout -> 60000 key: java.lang.String = {java.lang.String@4560}"http.socket.timeout" value: java.lang.Integer = {java.lang.Integer@4564}"60000" = {java.util.HashMap$Entry@4569} http.connection.timeout -> 60000 key: java.lang.String = {java.lang.String@4571}"http.connection.timeout" value: java.lang.Integer = {java.lang.Integer@4575}"60000" = {java.util.HashMap$Entry@4578} http.protocol.handle-redirects -> false key: java.lang.String = {java.lang.String@4580}"http.protocol.handle-redirects" value: java.lang.Boolean = {java.lang.Boolean@4553}"false" requestParams = {org.apache.http.params.BasicHttpParams@4531} parameters = {java.util.HashMap@4536} size = 0 overrideParams = null But I'm not sure what is causing the socket closed to occur 
- 
        4. Re: camel-http4 component setting redirect to offdavsclaus Mar 9, 2011 3:14 AM (in response to hhasting)Hi Can you try without those timeout parameters on the http endpoint, to see if it makes a difference? 
- 
        5. Re: camel-http4 component setting redirect to offdavsclaus Mar 9, 2011 3:24 AM (in response to davsclaus)I added an unit test to camel-http4 which tests redirects based on your configuration http://svn.apache.org/viewvc?rev=1079692&view=rev It uses a local test server and not a CXF but nevertheless it works. So the issue could be related to Apache CXF. I wonder if we should add some catch exception in camel-http producer when extracting response body. Because if its an error anyway we can still fail. However if its a OK answer we may have to re-throw the exception as we couldn't grab the response body. 
- 
        6. Re: camel-http4 component setting redirect to offhhasting Apr 28, 2011 3:53 AM (in response to hhasting)Hi Thankyou for all the replies it has been very helpful we ended up using a different approach for that particular functionality however I am now having a problem trying to get a 302 HTTP response back. I am using the HTTP4 component with the below in my camel context defined using Spring DSL with debug on I can see that a 302 response is shown which is what I am expecting at the moment but then it is changed to java.net.SocketException which is not what I was expecting I was expecting a HttpOperationFailedException. Does anyone know how to get the 302 response back as I need to check for this as the response and handle in a particular way. I have tried with throwExceptionOnFailure=false and same issue HttpProducer DEBUG Http responseCode: 302 exception: java.net.SocketException caused by: Socket is closed 
 
     
    