Come posso risolvere l'errore "java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper" in CloudFormation?

2 minuti di lettura
0

Quando provo a richiamare il mio provider di risorse in AWS CloudFormation, ricevo il seguente errore: "java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper"

Breve descrizione

Quando sviluppi o testi un file schema del provider di risorse, viene visualizzato l'errore "java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper". È possibile richiamare cfn test o sam local invoke, ma la directory /target/ del progetto non contiene un file .jar valido.

Per altri errori correlati all'utilizzo di un provider di risorse, consulta i seguenti articoli:

Soluzione

Per impostazione predefinita, il nome del file .jar è nel formato organization-service-resource-handler-1.0-SNAPSHOT.jar ed è configurato nel file pom.xml nella directory principale del progetto. Ad esempio:

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

Per creare il progetto, esegui cfn generate. Quindi, esegui mvn package. Ad esempio:

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

Nota: se la creazione e i test hanno esito positivo, mvn crea il file necessary**.jar** nella directory /target/.

Per saltare i test per gli unit test non completi, esegui mvn -Dmaven.test.skip=true package invece di 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] ------------------------------------------------------------------------

**Suggerimento:**puoi risolvere i test accedendo alla directory /target/surefire-reports dalla directory principale del progetto.


Informazioni correlate

CLI di AWS CloudFormation (dal sito web di GitHub)

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa