Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

[TOS ESB 7.1.1] Route using cMQConnectionFactory, cJMS and http4 cMessagingEndpoint fails at runtime

Hi,

 

We're migrating from Talend 6.2.1 to 7.1.1.

TOS migrated all our routes but routes using a cJMS input and calling REST services through cMessagingEndpoint using http4 component are failing.

 

When they start, we get the following stacktrace :

Failed to create route TestActiveMQAndHttp4_cJMS_1 at: >>> To[http4:localhost:8593] <<< in route: Route(TestActiveMQAndHttp4_cJMS_1)[[From[cMQConnectionFactor... because of Failed to resolve endpoint: http4://localhost:8593 due to: Cannot auto create component: http4
org.apache.camel.FailedToCreateRouteException: Failed to create route TestActiveMQAndHttp4_cJMS_1 at: >>> To[http4:localhost:8593] <<< in route: Route(TestActiveMQAndHttp4_cJMS_1)[[From[cMQConnectionFactor... because of Failed to resolve endpoint: http4://localhost:8593 due to: Cannot auto create component: http4
	at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1298)
	at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:204)
	at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:1089)
	at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3542)
	at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3273)
	at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:202)
	at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3091)
	at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3087)
	at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3110)
	at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3087)
	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
	at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3024)
	at org.apache.camel.main.Main.doStart(Main.java:139)
	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
	at org.apache.camel.main.MainSupport.run(MainSupport.java:168)
	at local_project.testactivemqandhttp4_0_1.TestActiveMQAndHttp4.run(TestActiveMQAndHttp4.java:209)
	at local_project.testactivemqandhttp4_0_1.TestActiveMQAndHttp4.runJobInTOS(TestActiveMQAndHttp4.java:306)
	at local_project.testactivemqandhttp4_0_1.TestActiveMQAndHttp4.main(TestActiveMQAndHttp4.java:276)
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: http4://localhost:8593 due to: Cannot auto create component: http4
	at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:723)
	at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:80)
	at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:219)
	at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:112)
	at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:118)
	at org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:62)
	at org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:56)
	at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:549)
	at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:510)
	at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:226)
	at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1295)
	... 17 more
Caused by: org.apache.camel.RuntimeCamelException: Cannot auto create component: http4
	at org.apache.camel.impl.DefaultCamelContext.initComponent(DefaultCamelContext.java:510)
	at org.apache.camel.impl.DefaultCamelContext.lambda$getComponent$0(DefaultCamelContext.java:448)
	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)
	at org.apache.camel.impl.DefaultCamelContext.getComponent(DefaultCamelContext.java:448)
	at org.apache.camel.impl.DefaultCamelContext.getComponent(DefaultCamelContext.java:432)
	at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:666)
	... 27 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.camel.component.http4.HttpComponent': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.camel.component.http4.HttpComponent]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.camel.component.http4.HttpComponent.registerExtension(Ljava/util/function/Supplier;)V
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:279)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1201)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1103)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:343)
	at org.apache.camel.spring.spi.SpringInjector.newInstance(SpringInjector.java:39)
	at org.apache.camel.impl.DefaultComponentResolver.resolveComponent(DefaultComponentResolver.java:73)
	at org.apache.camel.impl.DefaultCamelContext.initComponent(DefaultCamelContext.java:497)
	... 32 more
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.camel.component.http4.HttpComponent]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.camel.component.http4.HttpComponent.registerExtension(Ljava/util/function/Supplier;)V
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:154)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:122)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:271)
	... 40 more
Caused by: java.lang.NoSuchMethodError: org.apache.camel.component.http4.HttpComponent.registerExtension(Ljava/util/function/Supplier;)V
	at org.apache.camel.component.http4.HttpComponent.<init>(HttpComponent.java:133)
	at org.apache.camel.component.http4.HttpComponent.<init>(HttpComponent.java:127)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
	... 42 more

We reproduced this problem on a fresh installed TOS, with a route as below :

0683p000009M2qb.png0683p000009M2jb.png0683p000009M2ql.png0683p000009M2qq.png0683p000009M2fo.png

 

We use Windows 7 and Java 8 update 201.

 

Thanks for your help.

Labels (4)
8 Replies
Anonymous
Not applicable
Author

Hello,

Please go to Help - Install Additional packages and also menu Window -> Show View -> modules to make 100% sure that you manually install jar file for each component successfully.
Double check - In preference make sure that your Talend is pointed  to 1.8 JDK.

0683p000009M2gM.png

Best regards

Sabrina

dalbagnac
Contributor
Contributor

Hello,

 

I'm the same error.

I apply your configuration but not working.

 

Version java JDK 1.8.0_191

Talend TOS_ESB 7.1.1

 

 

If include library "activemq-all-5.15.2.tesb1-6.0.0-SNAPSHOT.jar" for Talend version 7.0.1 in Talend 7.1.1 is work.

0683p000009M5eT.png

 

Thanks for your help.

 

Best regards.

Damien

Loko
Creator II
Creator II

Hi

 

It's a bug in Talend ESB. Very surprised it is stil not fixed, as I faced it years ago in Talend ESB 6.3

Workaround : set your cMQConnectionFactory as "customized", with this code : 

 

jmsConnectionFactory = new org.apache.activemq.ActiveMQConnectionFactory(context.link_AMQTcpConnectionBUS);		

 

(or copy/paste the code that the regular component adds in the "code" tab, if different from this)

 

Then add a library dependancy : activemq-all-5.10.0.jar (or other version)

0683p000009M61m.png

 

Hope this helps

dalbagnac
Contributor
Contributor

Thanks for your helps but how to know the max version supported.

 

I'm trying in version :

 - activemq-all-5.15.2

 - activemq-all-5.15.3

 - activemq-all-5.15.9

But not working. Only the version include into talend 7.0.1 (activemq-all-5.15.2.tesb1-6.0.0-SNAPSHOT)

 

Damien

 

 

Loko
Creator II
Creator II

Try 5.10.0
dalbagnac
Contributor
Contributor

it's work but this library is very old.

0683p000009M61w.png

 

I'm testing other versions and the max version supported is 5.12.0.

I don't understand why higher versions don"t work.

Loko
Creator II
Creator II

But it works.
If you juste need to publish and consume messages in AMQ it will do the job.
FYI we use this on production system, 50 000 messages a day.
Anonymous
Not applicable
Author

hi,

so, using the method provided by Loko, with the activemq-all-5.15.2.tesb1-6.0.0-SNAPSHOT, i can run the route in my Talend Studio.

But when deploy on Talend ESB Runtime (7.1.1_SE_267_release/7.1.1), the bundle don't start.

 

bundle:diag :

 

Status: GracePeriod
Blueprint
30/08/19 16:14
Missing dependencies:
(&(objectClass=org.apache.aries.blueprint.NamespaceHandler)(osgi.service.blueprint.namespace=http://www.springframework.org/schema/beans)) (&(objectClass=org.apache.aries.blueprint.NamespaceHandler)(osgi.service.blueprint.namespace=http://camel.apache.org/schema/blueprint))
Declarative Services

 

Client log :

 

java.lang.ClassCastException: org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler cannot be cast to org.springframework.beans.factory.xml.NamespaceHandler

 

Hawtio log :

 

Bundle mediation.son_cap_pool_amq/0.1.0 is waiting for namespace handlers [http://www.springframework.org/schema/beans, http://camel.apache.org/schema/blueprint]

 

any help would be appreciated.

 

cu

 

For information, the bug discussed in this post is not resolved in TOS ESB 7.2.1