NoClassDefFoundError: com.amazonaws.http.AmazonHttpClient

Posted on

I have an issue on Fuse 7.2.0 with camel-aws and aws-java-sdk. We get the following exception when we configure a route:

com.my.package.aws.subsns:1.0.0.redhat-720035 (300)[subsns(20)] : The activate method has thrown an exception
java.lang.NoClassDefFoundError: Could not initialize class com.amazonaws.http.AmazonHttpClient
    at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:170) ~[281:org.apache.servicemix.bundles.aws-java-sdk:1.11.269.1]
    at com.amazonaws.services.sns.AmazonSNSClient.<init>(AmazonSNSClient.java:251) ~[281:org.apache.servicemix.bundles.aws-java-sdk:1.11.269.1]
    at com.amazonaws.services.sns.AmazonSNSClientBuilder.build(AmazonSNSClientBuilder.java:60) ~[281:org.apache.servicemix.bundles.aws-java-sdk:1.11.269.1]
    at com.amazonaws.services.sns.AmazonSNSClientBuilder.build(AmazonSNSClientBuilder.java:26) ~[281:org.apache.servicemix.bundles.aws-java-sdk:1.11.269.1]
    at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46) ~[281:org.apache.servicemix.bundles.aws-java-sdk:1.11.269.1]
    at com.my.package.aws.internal.SubSNSTemplateRoute.configure(SubSNSTemplateRoute.java:279) ~[300:com.my.package.aws.subsns:1.0.0.redhat-720035]
    at org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:462) ~[60:org.apache.camel.camel-core:2.21.0.fuse-720050-redhat-00001]
    at org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:402) ~[60:org.apache.camel.camel-core:2.21.0.fuse-720050-redhat-00001]
    at org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:383) ~[60:org.apache.camel.camel-core:2.21.0.fuse-720050-redhat-00001]
    at org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:1027) ~[60:org.apache.camel.camel-core:2.21.0.fuse-720050-redhat-00001]
    at org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:1024) ~[60:org.apache.camel.camel-core:2.21.0.fuse-720050-redhat-00001]
    at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270) ~[60:org.apache.camel.camel-core:2.21.0.fuse-720050-redhat-00001]

We have resolved transitive dependency issues, but we still get the exception.
A wokaround is to exclude aws-java-sdk from camel-aws and add a dependency for aws-java-sdk-bundle.
Has anyone else run into this on Fuse 7.2?
Thanks

Responses