Skip to content

Error testing Resource Provider - java.lang.ClassNotFoundException: software.amazon.cloudformation.<projectName>.HandlerWrapper #238

Open
@shantgup

Description

@shantgup

I'm following this tutorial here [1], and creating a Resource Provider using the cfn CLI.

When I run "sam local invoke TestEntrypoint --event sam-tests/create.json" I get error below.

Invoking software.amazon.cloudformation.command.HandlerWrapper::testEntrypoint (java8)

Fetching lambci/lambda:java8 Docker container image......
Mounting /Users/shantgup/Documents/CloudFormation-Command-Project/target/aws-cloudformation-command-handler-1.0-SNAPSHOT.jar as /var/task:ro,delegated inside runtime container
START RequestId: 4d2dbf5e-b8c6-159e-9687-8b59ce7d918a Version: $LATEST
java.lang.ClassNotFoundException: software.amazon.cloudformation.command.HandlerWrapper
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)

Exception in thread "main" java.lang.Error: java.lang.RuntimeException: java.lang.RuntimeException: Unexpected status code from invocation/response: 299
	at lambdainternal.AWSLambda.<clinit>(AWSLambda.java:65)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at lambdainternal.LambdaRTEntry.main(LambdaRTEntry.java:119)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Unexpected status code from invocation/response: 299
	at lambdainternal.LambdaRuntime.reportDone(LambdaRuntime.java:227)
	at lambdainternal.AWSLambda.startRuntime(AWSLambda.java:366)
	at lambdainternal.AWSLambda.<clinit>(AWSLambda.java:63)
	... 3 more
Caused by: java.lang.RuntimeException: Unexpected status code from invocation/response: 299
	at lambdainternal.LambdaRuntime.reportDone(LambdaRuntime.java:224)
	... 5 more

Now the file does not exist in my "src/main/java/software/amazon/cloudformation/<project_name>/"

But I see 3 of them in /target/classes/software/amazon/cloudformation/<project_name>. There's HandlerWrapper.class, HandlerWrapper$1.class, HandlerWrapper$2.class, HandlerWrapper$3.class.

Also, my build steps have been as follows:

1. cfn generate
2. Build project in IntelliJ Idea
3. sam local invoke TestEntrypoint --event sam-tests/create.json

Any help to troubleshoot / fix this would be greatly appreciated.

[1] - https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-walkthrough.html

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions