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: java.lang.IllegalStateException: unsupported protocol: 'https4'
Date Sat, 29 Oct 2016 11:37:23 GMT
Hi

Can you try with

 <setHeader headerName="CamelHttpUri">

<simple>https://myapp.com${header.employeeName}?size=${header.size}</simple>
          </setHeader>


On Fri, Oct 21, 2016 at 7:04 AM, bcwajapey <bcwajapey@gmail.com> wrote:
> Hi All,
>
> I am using camel to call REST URLs. In doing so, I am setting the
> CamelHttpUri header to override the URI. This works properly with http/https
> (Http client 3.x). However, it fails for http4/https4 (Http Client 4.x).
> Below is the stack trace for https4
>
> Stacktrace
> ---------------------------------------------------------------------------------------------------------------------------------------
> java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
>         at
> org.apache.camel.component.http.HttpMethods.createMethod(HttpMethods.java:49)
>         at
> org.apache.camel.component.http.HttpProducer.createMethod(HttpProducer.java:391)
>         at
> org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:95)
>         at
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
>         at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
>         at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:163)
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:120)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
>         at
> org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
>         at
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:529)
>         at
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:497)
>         at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:365)
>         at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:497)
>         at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:209)
>         at
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:139)
>         at
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:125)
>         at
> org.apache.camel.example.osgi.MyRouteBuilder.executeCamelRoutes(MyRouteBuilder.java:79)
>         at
> org.apache.camel.example.osgi.MyRouteBuilder.main(MyRouteBuilder.java:51)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:497)
>         at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
> Caused by: java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>         at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
>         at
> org.apache.camel.component.http.HttpMethods.createMethod(HttpMethods.java:47)
>         ... 28 more
> Caused by: java.lang.IllegalStateException: unsupported protocol: 'https4'
>         at
> org.apache.commons.httpclient.protocol.Protocol.lazyRegisterProtocol(Protocol.java:149)
>         at
> org.apache.commons.httpclient.protocol.Protocol.getProtocol(Protocol.java:117)
>         at org.apache.commons.httpclient.HttpHost.<init>(HttpHost.java:107)
>         at
> org.apache.commons.httpclient.HttpMethodBase.setURI(HttpMethodBase.java:280)
>         at
> org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:220)
>         at
> org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89)
>         ... 33 more
>
>
> *The camel script that I am using is as below -*
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:camel="http://camel.apache.org/schema/spring"
>        xsi:schemaLocation="
>          http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
>          http://camel.apache.org/schema/spring
> http://camel.apache.org/schema/spring/camel-spring.xsd">
>
>     <camelContext xmlns="http://camel.apache.org/schema/spring"
> trace="true">
>       <camel:template id="camelTemplate"/>
>
>       <route id="route1">
>           <from uri="direct:start"/>
>           <setHeader headerName="CamelHttpMethod">
>               <constant>GET</constant>
>           </setHeader>
>
>           <to
> uri="https4://myapp.com/resource/v2/user?throwExceptionOnFailure=false"/>
>
>           <setHeader headerName="employeeName">
>
> <jsonpath>$.consumer[0].employees[0].resources.employeeName</jsonpath>
>           </setHeader>
>
>           <setHeader headerName="CamelHttpMethod">
>               <constant>GET</constant>
>           </setHeader>
>           <setHeader headerName="CamelHttpUri">
>
> <simple>https4://myapp.com${header.employeeName}?size=${header.size}</simple>
>           </setHeader>
>           <to uri="https4://myapp.com"/>
>       </route>
>     </camelContext>
>
> </beans>
>
> *Also, I have included the dependency for camel-http4. Version = 2.18.0*
>
> <dependency>
>   <groupId>org.apache.camel</groupId>
>   <artifactId>camel-http4</artifactId>
>   <version>2.18.0</version>
> </dependency>
>
> Can you please tell me what is wrong with the camel script?
>
> *Note: This camel script works if I use http instead of http4.*
>
> Thanks,
> Brahmachaitanya
>
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/java-lang-IllegalStateException-unsupported-protocol-https4-tp5789058.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Mime
View raw message