CloudFormation の「java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper」というエラーを解決する方法を教えてください。

所要時間1分
0

AWS CloudFormation でリソースプロバイダーを呼び出そうとすると、次のエラーが表示されます。 「java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper」

簡単な説明

リソースプロバイダースキーマファイルの開発またはテスト中に、「java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper」エラーが表示されます。cfn test または sam local invoke を呼び出しても、プロジェクトの /target/ ディレクトリに有効な .jar ファイルが含まれていません。

リソースプロバイダーの使用に関連するその他のエラーについては、次の記事を参照してください。

解決方法

デフォルトでは、 .jar ファイルの名前は、 organization-service-resource-handler-1.0-SNAPSHOT.jar 形式で、プロジェクトのルートディレクトリにある pom.xml ファイルで設定されます。以下はその例です。

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

プロジェクトをビルドするには、cfn generate を実行します。次に、mvn パッケージを実行します。以下はその例です。

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

注意: 構築とテストが成功した場合、 mvn は必要な .jar ファイルを /target/ ディレクトリに作成します。

完了していない単体テストをスキップしたい場合は、mvn package の代わりに mvn -Dmaven.test.skip=true 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] ------------------------------------------------------------------------

ヒント: プロジェクトのルートディレクトリから /target/surefire-reports ディレクトリに移動することで、テストのトラブルシューティングを行うことができます。


関連情報

AWS CloudFormation CLI (GitHub ウェブサイトから)

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ