AWS CloudFormation에서 "java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 8월 17일

AWS CloudFormation에서 리소스 공급자를 호출하려고 할 때 "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>

해결 방법

1.    프로젝트를 구축하기 위해 cfn generatemvn 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이 필요한 .jar 파일을 /target/ 디렉토리에 생성합니다.

2.    단위 테스트가 완료되지 않았는데 테스트를 건너뛰려면 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 디렉토리로 이동하여 테스트 문제를 해결할 수 있습니다.


이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?