Wie behebe ich den Fehler „java.lang.ClassNotFoundException: com.example.Package.Resource.HandlerWrapper“ in CloudFormation?

Lesedauer: 2 Minute
0

Wenn ich versuche, meinen Ressourcenanbieter in AWS CloudFormation aufzurufen, erhalte ich die folgende Fehlermeldung: „java.lang.ClassNotFoundException: com.example.Package.Resource.HandlerWrapper“

Kurzbeschreibung

Sie erhalten den Fehler „java.lang.ClassNotFoundException: com.example.Package.Resource.HandlerWrapper“, wenn Sie eine Ressourcenanbieter-Schemadatei entwickeln oder testen. Sie rufen cfn test oder sam local invoke auf, aber das Verzeichnis /target/ in Ihrem Projekt enthält keine gültige .jar-Datei.

Weitere Fehler, die mit der Verwendung eines Ressourcenanbieters zusammenhängen, finden Sie in den folgenden Artikeln:

Behebung

Standardmäßig hat der Name der .jar-Datei das Format organization-service-resource-handler-1.0-SNAPSHOT.jar und ist in der Datei pom.xml im Stammverzeichnis Ihres Projekts konfiguriert. Zum Beispiel:

<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>

Um Ihr Projekt zu erstellen, führen Sie cfn generate aus. Führen Sie dann das MVN-Paket aus. Zum Beispiel:

$ 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] ------------------------------------------------------------------------

Hinweis: Wenn der Build und die Tests erfolgreich sind, erstellt mvn die erforderliche**.jar**-Datei im Verzeichnis /target/.

Um die Tests für unvollständige Komponententests zu überspringen, führen Sie mvn -Dmaven.test.skip=true package anstelle von mvn package aus.

$ 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] ------------------------------------------------------------------------

Tipp: Sie können die Tests beheben, indem Sie vom Stammverzeichnis Ihres Projekts zum Verzeichnis /target/surefire-reports navigieren.


Verwandte Informationen

AWS CloudFormation CLI (von der GitHub-Website)

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren