I'm triying to create my first lambda function in Java.
I want to start with a little example, reading a S3 Input Event.
It's my code:
package com.amazonaws.lambda.alfreddo;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.S3Event;
public class LambdaFunctionHandler implements RequestHandler<S3Event, String> {
@Override
public String handleRequest(S3Event input, Context context) {
context.getLogger().log("Input: " + input);
// TODO: implement your handler
return "Hello from Lambda!";
}
}
But, when in i try to run it on AWS Console i get the next error:
{
"errorMessage": "Error loading method handleRequest on class com.amazonaws.lambda.alfreddo.LambdaFunctionHandler",
"errorType": "java.lang.NoClassDefFoundError"
}
Error loading method handleRequest on class com.amazonaws.lambda.alfreddo.LambdaFunctionHandler: java.lang.NoClassDefFoundError
java.lang.NoClassDefFoundError: com/amazonaws/services/lambda/runtime/events/S3Event
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetPublicMethods(Class.java:2902)
at java.lang.Class.getMethods(Class.java:1615)
Caused by: java.lang.ClassNotFoundException: com.amazonaws.services.lambda.runtime.events.S3Event
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4 more
I'm using the AWS Toolkit for Eclipse.
any help?
Thanks!
Had similar problem, adding maven-shade-plugin and rebuilding with GOAL: package shade:shade solved the issue
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With