Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
shantgup opened this issue Mar 18, 2020 · 1 comment

Comments

@shantgup
Copy link
Member

shantgup commented Mar 18, 2020

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

@shantgup
Copy link
Member Author

shantgup commented Mar 18, 2020

Update: Jacob Fuss at sam-cli said that this is because the file does not contain the required files. Looking at the /target/aws-cloudformation-command-handler-1.0-SNAPSHOT.jar/, I see that it is an empty folder. Opening another issue for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant