Comment résoudre l'erreur « java.lang.ClassNotFoundException : com.example.package.resource.HandlerWrapper » dans AWS CloudFormation ?
Date de la dernière mise à jour : 17/08/2020
Je reçois l'erreur « java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper » lorsque j'essaie d'appeler mon fournisseur de ressources dans AWS CloudFormation. Comment résoudre cette erreur ?
Brève description
Vous recevez cette erreur lorsque vous développez ou testez un schéma de fournisseur de ressources et que vous appelez les commandes cfn test ou sam local invoke, mais que le répertoire /target/ de votre projet ne contient pas de fichier .jar valide.
Par défaut, le nom du fichier .jar est au format organization-service-resource-handler-1.0-SNAPSHOT.jar et est 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>
Si vous rencontrez des problèmes avec d'autres erreurs liées à l'utilisation d'un fournisseur de ressources, consultez les articles suivants pour des étapes de dépannage supplémentaires :
- Comment résoudre l'erreur « Resource specification is invalid » (« La spécification de ressource est invalide ») lorsque j'exécute la commande cfn generate à l'aide de l'interface de ligne de commande CloudFormation dans AWS CloudFormation ?
- Comment résoudre l'erreur « Échec de la validation du modèle (# : la clé externe [Clé] n'est pas autorisée) » dans AWS CloudFormation ?
- Comment résoudre l'erreur « Resource timed out waiting for creation of physical resource » (« Ressource expirée en attente de création d'une ressource physique ») lorsque je crée une ressource à l'aide de mon type de fournisseur de ressources dans AWS CloudFormation ?
- Comment résoudre l'erreur « Attribute 'Key' does not exist » (« L'attribut “Clé” n'existe pas ») lorsque j'utilise la fonction Fn።GetAtt sur ma ressource de fournisseur de ressources dans AWS CloudFormation ?
Solution
1. Pour construire votre projet, exécutez la commande cfn generate suivie de 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/.
2. 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 des tests en accédant au répertoire /target/surefire-reports à partir du répertoire racine de votre projet.
Informations connexes
Cet article vous a-t-il été utile ?
Besoin d'aide pour une question technique ou de facturation ?