AWS CloudFormation에서 리소스 공급자를 호출하려고 하면 다음과 같은 오류 메시지가 나타납니다. "java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper"
해결 방법
리소스 유형 스키마 파일을 개발하거나 테스트할 때는 cfn test 또는 sam local invoke를 호출합니다. 프로젝트의 /target/ 디렉터리에 유효한 .jar 파일이 없는 경우 java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper 오류가 발생합니다.
기본적으로 .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 package를 실행합니다.
cfn generateGenerated 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 -Dmaven.test.skip=true package를 mvn package 대신 실행하세요.
cfn generateGenerated 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 디렉터리를 여세요.
리소스 공급자와 관련된 다른 오류에 대해서는 다음 문서를 참조하세요.
관련 정보
GitHub 웹사이트의 CloudFormation CLI