尝试从aws lambda处理程序函数调用SDN时发生java.lang.NullPointerException

尝试从aws lambda处理程序函数调用SDN时发生java.lang.NullPointerException,java,amazon-web-services,neo4j,spring-data-neo4j,aws-lambda,Java,Amazon Web Services,Neo4j,Spring Data Neo4j,Aws Lambda,我有一个处理函数,在其中调用我的spring数据存储库接口。代码在我的main方法或jar中运行良好,但是当我在s3中上载jar并从aws lambda调用repository方法时抛出NullPointerException。下面是我的lambda处理程序方法 public class LambdaRestFunction implements RequestHandler<String, Object> { @Autowired UserRepository u

我有一个处理函数,在其中调用我的spring数据存储库接口。代码在我的main方法或jar中运行良好,但是当我在s3中上载jar并从aws lambda调用repository方法时抛出NullPointerException。下面是我的lambda处理程序方法

public class LambdaRestFunction implements RequestHandler<String, Object> {

    @Autowired
    UserRepository userRepository;

    @Override
    public String handleRequest(String uname, Context context) {
        String time = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(Calendar.getInstance().getTime());

        context.getLogger().log("Lambda call started: " + time);

        List<User> users = new ArrayList<>();
        context.getLogger().log("Array initialized.");
        **users = userRepository.findByName(uname);** // <-- NullPointerException thrown here
        context.getLogger().log("Method call over..");
        ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
        String json = "[]";
        try {
            json = ow.writeValueAsString(users);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            context.getLogger().log("Error from application : " + e.getMessage());
        }

        context.getLogger().log("Lambda function completed: " + time);
        return json;
    }

}
请在以下跟踪日志中找到:

java.lang.NullPointerException
at com.test.lambda.LambdaRestFunction.handleRequest(LambdaRestFunction.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at lambdainternal.EventHandlerLoader$PojoMethodRequestHandler.handleRequest(EventHandlerLoader.java:439)
at lambdainternal.EventHandlerLoader$PojoHandlerAsStreamHandler.handleRequest(EventHandlerLoader.java:370)
at lambdainternal.EventHandlerLoader$2.call(EventHandlerLoader.java:972)
at lambdainternal.AWSLambda.startRuntime(AWSLambda.java:235)
at lambdainternal.AWSLambda.<clinit>(AWSLambda.java:60)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at lambdainternal.LambdaRTEntry.main(LambdaRTEntry.java:94) 
java.lang.NullPointerException
位于com.test.lambda.LambdaRestFunction.handleRequest(LambdaRestFunction.java:36)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于lambdainternal.EventHandlerLoader$PojoMethodRequestHandler.handleRequest(EventHandlerLoader.java:439)
在lambdainternal.EventHandlerLoader$pojohandlerastreamhandler.handleRequest(EventHandlerLoader.java:370)
在lambdainternal.EventHandlerLoader$2.call(EventHandlerLoader.java:972)
在lambdainternal.AWSLambda.startRuntime(AWSLambda.java:235)
在lambdainternal.AWSLambda.(AWSLambda.java:60)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:348)
位于lambdainternal.LambdaRTEntry.main(LambdaRTEntry.java:94)

如果有人能帮我找到异常的原因,我将不胜感激。提前感谢。

Lambda不支持注释,因此@Autowired将不会产生预期效果


在,请参阅“处理程序输入/输出:POJO类型”下的说明。

请发布完整的stacktrace,并突出显示代码中提供的行号。错误在HandlerRequest()函数中抛出,其中userRepository.findByName(uname);被称为。谢谢。那么
userRepository
可能为null,或者
findByName
方法中的某些内容为null。同样,张贴完整的stacktrace并突出显示发生错误的行。如果没有stacktrace,我们无法告诉您问题所在。您能否突出显示
LambdaRestFunction
的第36行?非常感谢您的回复@Jeff Learman。你是对的,这似乎是问题所在。我不知道我怎么会忽略了指南中的那一部分。我能解决这个问题。谢谢你的帮助!
@NodeEntity
public class User {

    @GraphId Long id;
    private String name;
    private String dob;
    private String cc;

    public User(String name, String dob, String cc) {
        this.name = name;
        this.dob = dob;
        this.cc = cc;
    }

    public User() {
    }

    public String getName() {
        return name;
    }
...
java.lang.NullPointerException
at com.test.lambda.LambdaRestFunction.handleRequest(LambdaRestFunction.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at lambdainternal.EventHandlerLoader$PojoMethodRequestHandler.handleRequest(EventHandlerLoader.java:439)
at lambdainternal.EventHandlerLoader$PojoHandlerAsStreamHandler.handleRequest(EventHandlerLoader.java:370)
at lambdainternal.EventHandlerLoader$2.call(EventHandlerLoader.java:972)
at lambdainternal.AWSLambda.startRuntime(AWSLambda.java:235)
at lambdainternal.AWSLambda.<clinit>(AWSLambda.java:60)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at lambdainternal.LambdaRTEntry.main(LambdaRTEntry.java:94)