为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁星coding 2021-03-31 16:17:36
我编写了一个简单的Java程序,它将采用JSON格式的Person对象并返回字符串消息。依赖关系由Maven维护,下面是pom.xml中包含的所有依赖关系aws-lambda-java-coremaven-shade-pluginmaven-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
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

根据我不那么丰富的经验,您可以检查一些事情:

  1. 检查上传的包裹的大小。当我没有正确构建Maven项目时,就出现了该错误。当我意识到我检查了S3中的文件时,该文件小于1MB,而对于我而言,通常约为70MB。因此它没有正确构建。

  2. 我个人使用eclipse:eclipse作为目标,也许您可以尝试一下,看看它是否有效。

  3. 检查lambda是否指向打包代码的正确版本,以及是否应配置任何VPC。

希望对您有所帮助。


查看完整回答
反对 回复 2021-04-18
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-04-18
  • 2 回答
  • 0 关注
  • 226 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信