Como resolvo o erro “java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper” no CloudFormation?
Quando tento invocar meu provedor de recursos no AWS CloudFormation, recebo o erro: “java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper”
Breve descrição
Você recebe o erro “java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper” ao desenvolver ou testar um arquivo de esquema do provedor de recursos. Você chama cfn test ou sam local invoke, mas o diretório /target/ de seu projeto não contém um arquivo .jar válido.
Para outros erros relacionados ao uso de um provedor de recursos, consulte estes artigos:
- Como resolvo o erro “A especificação do recurso é inválida” ao executar o comando cfn generate usando a CLI do CloudFormation no CloudFormation?
- Como resolvo o erro “Falha na validação de modelo (#: a chave estranha [Key] não é permitida)” no CloudFormation?
- Como resolvo o erro “O recurso atingiu o tempo limite à espera da criação do recurso físico” ao criar um recurso usando meu tipo de provedor de recursos no CloudFormation?
- Como resolvo o erro “O atributo 'Key' não existe” ao usar a função Fn::GetAtt no recurso do meu provedor de recursos no CloudFormation?
Solução
Por padrão, o nome do arquivo .jar está no formato organization-service-resource-handler-1.0-SNAPSHOT.jar e configurado no arquivo pom.xml no diretório raiz de seu projeto. Por exemplo:
<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>
Para criar seu projeto, execute cfn generate. Em seguida, execute mvn package. Por exemplo:
$ 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] ------------------------------------------------------------------------
Observação: se a compilação e os testes forem bem-sucedidos, mvn criará o arquivo .jar necessário no diretório /target/.
Para ignorar os testes de unidades que não estiverem concluídos, execute mvn -Dmaven.test.skip=true package em vez de 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] ------------------------------------------------------------------------
Dica: você pode solucionar problemas de testes navegando até o diretório /target/surefire-reports a partir do diretório raiz do seu projeto.
Informações relacionadas
CLI do AWS CloudFormation (do site do GitHub)
Conteúdo relevante
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 4 anos