Jeff Eltgroth created CAMEL-7405:
------------------------------------
Summary: SQS endpoint - HttpRoute class not found at route startup
Key: CAMEL-7405
URL: https://issues.apache.org/jira/browse/CAMEL-7405
Project: Camel
Issue Type: Bug
Components: camel-aws
Affects Versions: 2.13.0
Environment: Windows 7 Ent SP1 AND GNU/Linux 2.6.18-274.17.1.0.1.el5
JDK: 1.7.0_51
Apache Karaf (2.3.5)
camel-core (2.13.0)
camel-karaf-commands (2.13.0)
camel-blueprint (2.13.0)
Apache Apache HttpCore OSGi bundle (4.3.2)
Apache Apache HttpClient OSGi bundle (4.3.3)
Commons Codec (1.8.0)
Jackson JSON processor (1.9.12)
Data mapper for Jackson JSON processor (1.9.12)
Apache ServiceMix :: Bundles :: aws-java-sdk (1.7.1.1)
camel-aws (2.13.0)
Reporter: Jeff Eltgroth
I have a bundle using aws-sqs endpoint that works in Karaf 2.3.3 and Camel
2.12.1. We have to upgrade Karaf 2.3.5 and Camel to 2.13.0 for required
improvements, and now my bundle fails to load because of missing classes. I
would be satisfied to know which packages to include in my imports or which
feature I may be missing, I have run the below steps in two versions of Camel.
The bundle works in 2.12.1 and fails in 2.13.0. Here are the steps for
version 2.13.0:
$ mvn archetype:generate -DarchetypeGroupId=org.apache.camel.archetypes
-DarchetypeArtifactId=camel-archetype-blueprint -DarchetypeVersion=2.13.0
-DgroupId=com.example.aws -DartifactId=example-aws -Dpackage=com.example.aws
-Dversion=2.13.0
$ mvn package
$ mvn camel:run
(verifies archetype runs)
Add dependency to pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>2.13.0</version>
</dependency>
Add following to maven-bundle-plugin in pom.xml
<Import-Package>
org.apache.http.conn.routing;version="[4.3.3,5)",
*
</Import-Package>
Change endpoint in blueprint.xml
<to uri="aws-sqs://test-queue?accessKey=yourkey&secretKey=yourkey" />
(need to change or skip test to package)
$ mvn -Dmaven.test.skip=true package
$ mvn camel:run
(above works, so maven is including all classes)
Install Karaf 2.3.5
Set JAVA_HOME to JDK 1.7.0_51
karaf@root> features:chooseurl camel 2.13.0
karaf@root> features:install camel-core
karaf@root> features:install camel-blueprint
karaf@root> features:install camel-aws
Drop bundle into deploy folder and observe the following stack trace in the
Karaf console:
karaf@root> ERROR: Bundle example-aws [70] EventDispatcher: Error during
dispatch. (java.lang.NoClassDefFoundError:
org.apache.http.conn.routing.HttpRoute not found by
org.apache.servicemix.bundles.aws-java-sdk [68])
java.lang.NoClassDefFoundError: org.apache.http.conn.routing.HttpRoute not
found by org.apache.servicemix.bundles.aws-java-sdk [68]
at com.amazonaws.http.conn.$Proxy36.<clinit>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.reflect.Proxy.newInstance(Proxy.java:748)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:739)
at
com.amazonaws.http.conn.ClientConnectionManagerFactory.wrap(ClientConnectionManagerFactory.java:42)
at
com.amazonaws.http.impl.client.SdkHttpClient.<init>(SdkHttpClient.java:29)
at
com.amazonaws.http.HttpClientFactory.createHttpClient(HttpClientFactory.java:98)
at com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:155)
at
com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:118)
at
com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:102)
at
com.amazonaws.services.sqs.AmazonSQSClient.<init>(AmazonSQSClient.java:166)
at
com.amazonaws.services.sqs.AmazonSQSClient.<init>(AmazonSQSClient.java:147)
at
org.apache.camel.component.aws.sqs.SqsEndpoint.createClient(SqsEndpoint.java:219)
at
org.apache.camel.component.aws.sqs.SqsEndpoint.getClient(SqsEndpoint.java:204)
at
org.apache.camel.component.aws.sqs.SqsEndpoint.doStart(SqsEndpoint.java:81)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
(remaining stack omitted)
--
This message was sent by Atlassian JIRA
(v6.2#6252)