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

上次更新时间:2020 年 8 月 17 日

尝试在 AWS CloudFormation 中调用我的资源提供程序时,我收到“java.lang.ClassNotFoundException:com.example.package.resource.HandlerWrapper”这一错误。如何解决此错误?

简短描述

当您正在开发或测试资源提供程序 schema并调用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>

解决方法

1.    要构建您的项目,请运行cfn generate,然后运行mvn package。例如:

$ 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文件。

2.    如果您的单元测试尚未完成,而您想跳过测试,请运行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来排除测试故障。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?