AWS Lambda:类java.lang.ClassNotFoundException

Rit*_*ito 9 deployment amazon-web-services classnotfoundexception aws-lambda

我收到此消息,我不知道如何解决它.在网上搜索并尝试实施他们的建议,但没有运气. 在此输入图像描述

我基本上按照此链接中指定的说明进行操作 - http://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/lambda-tutorial.html

但是,我没有使用Eclipse中嵌入的AWS管理控制台上传项目,而是尝试创建项目的zip并将其上传到AWS Web控制台.

以下是我的项目结构 - 在此输入图像描述

这就对了!!我试图在这里做什么都没有.它只是Lambda中的HelloWorld示例.

现在,这就是我创建zip文件的方式,这在Eclipse中非常简单 - 在此输入图像描述

创建zip后,我将其上传到AWS Web控制台的代码选项卡下 - 在此输入图像描述

配置选项卡看起来像这样 - 在此输入图像描述

现在,当我单击"测试"按钮时,它无法找到example.Hello类.

为什么Lambda函数难以找到这个类呢?任何人都可以建议这个执行中可能出错的地方吗?

还附上日志声明,以防它有帮助 -

在此输入图像描述

San*_*mar 12

以下内容对我有用。

  1. 转到 AWS 控制台中的 lambda 函数
  2. 单击“代码”选项卡。
  3. 编辑运行时设置
  4. 将 example.Hello::handleRequest 替换为流处理程序的完整类路径。例如 com.abc.company.app.StreamLambdaHandler::handleRequest
  5. 保存。


Pet*_*ete 3

我遇到了同样的问题,对我有用的是,如果您使用 Maven 从 Eclipse 运行它,请确保您的 pom.xml 中有以下插件:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
        <configuration>
          <artifactSet>
            <excludes>
              <exclude>com.amazonaws:aws-lambda-java-events</exclude>
              <exclude>com.amazonaws:aws-lambda-java-core</exclude>
            </excludes>
          </artifactSet>
        </configuration>
      </execution>
    </executions>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令运行项目:mvn package shade:shade以在目标目录中生成 jar 工件。之后,eclipse 应该将正确的 jar 上传到 lambda。