Hi everyone, good afternoon.
We have a custom bundle that wires up the whole AWS SDK OSGI package and export it, so the other part of application can take advantage of the AWS SDK as well. This is working properly, we have an AEM preprocessor that pushes some data to AWS CloudSearch.
I'm trying to take advantage of that bundle that is already installed and running on upper environments, but I'm struggling with it and it seems that AEM is not finding the correct resolution for some classes, it gives me the NoClassDefFoundError error:
java.lang.NoClassDefFoundError: Could not initialize class com.amazonaws.ClientConfiguration at com.amazonaws.ClientConfigurationFactory.getDefaultConfig(ClientConfigurationFactory.java:46) [com.xxx.aws.cloudsearch.xxx-cloudsearch-bundle:3.0.1] at com.amazonaws.ClientConfigurationFactory.getConfig(ClientConfigurationFactory.java:36) [com.xxx.aws.cloudsearch.xxx-cloudsearch-bundle:3.0.1] at com.amazonaws.services.cloudfront.AmazonCloudFrontClient.<init>(AmazonCloudFrontClient.java:140) [com.xxx.aws.cloudsearch.xxx-cloudsearch-bundle:3.0.1]
My pom.xml looks like this:
I took a look at http://localhost:4502/system/console/bundles and it seems that my dependency is properly resolved as we can see below:
This is the custom bundle (xxx.xxx.xxx.cloudsearch-bundle) and how it exports the amazon dependencies:
I've double checked and that class is being resolved by AEM:
Anyone has an idea?
This exception "
java.lang.NoClassDefFoundError: Could not initialize class com.amazonaws.ClientConfiguration
does not necessarily mean that the problem is the class com.amazonaws.ClientConfiguration itself, but that it happened within the constructor of that class. Can you show us the complete exception?