猿问

AWS Lambda无法找到处理程序中给定的类

我编写了一个简单的Java程序,它将采用JSON格式的Person对象并返回字符串消息。依赖关系由Maven维护,下面是pom.xml中包含的所有依赖关系


aws-lambda-java-core

maven-shade-plugin


maven-shade-plugin除了依赖项之外,我还包括了作为插件的插件,并以目标运行了Maven构建package shade:shade。成功构建之后,我将该app-1.0-SNAPSHOT-shaded.jar文件部署到了我创建的lambda函数中,当我测试该函数时,我的响应低于要求,并且无法解决问题。


{

  "errorMessage": "Class not found: com.techm.nimbus.Handler",

  "errorType": "java.lang.ClassNotFoundException"

}


下面是实现RequestHandler接口的类


package com.techm.nimbus;

import com.amazonaws.services.lambda.runtime.Context;

import com.amazonaws.services.lambda.runtime.RequestHandler;

public class Handler implements RequestHandler<Person, String>{


    public String handleRequest(Person input, Context context) {

        return "Got the message";

    }

}

并且lambda函数的处理程序的值为 com.techm.nimbus.Handler::handleRequest


繁星coding
浏览 227回答 2
2回答

烙印99

根据我不那么丰富的经验,您可以检查一些事情:检查上传的包裹的大小。当我没有正确构建Maven项目时,就出现了该错误。当我意识到我检查了S3中的文件时,该文件小于1MB,而对于我而言,通常约为70MB。因此它没有正确构建。我个人使用eclipse:eclipse作为目标,也许您可以尝试一下,看看它是否有效。检查lambda是否指向打包代码的正确版本,以及是否应配置任何VPC。希望对您有所帮助。

蝴蝶不菲

验证应用程序是否正确构建。您也可以使用“ install shade:shade”命令来构建项目。确保aws控制台中的配置指向Lambda代码的确切类和方法。
随时随地看视频慕课网APP

相关分类

Java
我要回答