Lorsque j'essaie d'appeler mon fournisseur de ressources dans AWS CloudFormation, je reçois le message d'erreur suivant :
« java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper »
Brève description
L'erreur « java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper » s'affiche lorsque vous développez ou testez un fichier de schéma de fournisseur de ressources. Vous appelez cfn test ou sam local invoke, mais le répertoire /target/ de votre projet ne contient pas de fichier .jar valide.
Pour les autres erreurs liées à l'utilisation d'un fournisseur de ressources, consultez les articles suivants :
Solution
Par défaut, le nom du fichier .jar est au format organization-service-resource-handler-1.0-SNAPSHOT.jar et configuré dans le fichier pom.xml du répertoire racine de votre projet. Par exemple :
<groupId>com.organization.service.resource</groupId>
<artifactId>organization-service-resource-handler</artifactId>
<name>organization-service-resource-handler</name>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
Afin de construire votre projet, lancez cfn generate. Ensuite, exécutez la commande mvn package. Par exemple :
$ cfn generate
Generated files for Organization::Service::Resource
$ mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] --< software.organization.service.resource:organization-service-resource-handler >--
[INFO] Building organization-service-resource-handler 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.690 s
[INFO] Finished at: 2020-07-14T16:02:47-05:00
[INFO] ------------------------------------------------------------------------
Remarque : si la construction et les tests réussissent, mvn crée le fichier .jar nécessaire dans le répertoire /target/.
Si vos tests d'unité ne sont pas terminés et que vous voulez les passer, exécutez la commande mvn -Dmaven.test.skip=true package au lieu de mvn package.
$ cfn generate
Generated files for Organization::Service::Resource
$ mvn package -Dmaven.test.skip=true package
[INFO] Scanning for projects...
[INFO]
[INFO] --< software.organization.service.resource:organization-service-resource-handler >--
[INFO] Building organization-service-resource-handler 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.690 s
[INFO] Finished at: 2020-07-14T16:02:47-05:00
[INFO] ------------------------------------------------------------------------
Conseil : vous pouvez résoudre les problèmes liés aux tests en accédant au répertoire /target/surefire-reports à partir du répertoire racine de votre projet.
Informations connexes
CLI AWS CloudFormation depuis le site Web GitHub (français non garanti)