如何解决 CloudFormation 中的 “java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper”错误?

2 分钟阅读
0

当我尝试在 AWS CloudFormation 中调用我的资源提供商时,我收到以下错误: "java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper"

简短描述

当您开发或测试资源提供商架构文件时,您会收到 “java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper” 错误。您调用 cfn testsam 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 会在 /target/ 目录中创建必要的 .jar 文件。

如果您的单元测试尚未完成,而您想跳过测试,请运行 mvn -Dmaven.test.skip=true package,而非 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] ------------------------------------------------------------------------

**提示:**您可以通过从项目的根目录导航到目录 /target/surefire-reports 来排除测试故障。


相关信息

AWS CloudFormation CLI(来自 GitHub 网站)

AWS 官方
AWS 官方已更新 2 年前