【问题标题】:AWS Lambda Java Error: ClassNotFoundExceptionAWS Lambda Java 错误:ClassNotFoundException
【发布时间】:2020-12-03 14:37:09
【问题描述】:

我在尝试测试/调用我的 AWS Lambda 时遇到此错误:

{
  "errorMessage": "Class not found: com.schema.migration.handler.PgSchemaMigrationHandler",
  "errorType": "java.lang.ClassNotFoundException"
}

我使用处理程序创建了函数:com.schema.migration.handler.PgSchemaMigrationHandler .这是我用来创建函数的 zip 目录:

我的 PgSchemaMigrationHandler.class:

   package com.schema.migration.handler;
   ...
   public class PgSchemaMigrationHandler implements RequestHandler<Map<String, Object>, Object> {

       //handler code
   }

我的 build.gradle 中有 AWS 依赖项,也有这个来构建 zip:

distributions {
main {
    contents {
        from 'src/main/java'
        from 'src/main/resources'
        exclude("**/bifrost-schema-schema-migration-1.0.null.jar")
    }
}

distZip{
    dependsOn compileJava
}

关于为什么 AWS 找不到我的课程有什么想法吗?

【问题讨论】:

  • 这看起来像是包装问题。您的 build.gradle 是否基于 Java samples for Lambda 之一?
  • 对不起,我不太清楚你的意思(这是我第一次尝试使用 Lambda)。我的 build.gradle 只是 AWS 依赖项、java 和 spring boot 插件,以及我上面所拥有的

标签: java amazon-web-services gradle aws-lambda


【解决方案1】:

到目前为止,我了解到 AWS 对 Java 不是很友好。但它有效,我之前在我的包中添加依赖 jar 时遇到了问题。我已经构建了一个带有所有依赖项的 uber jar。

这是使用 gradle 的方法 - https://github.com/awsdocs/aws-lambda-developer-guide/blob/master/sample-apps/blank-java/build.gradle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 2017-02-11
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多