当前位置: 首页 > 知识库问答 >
问题:

未找到AWS lambda的类异常

宋岳
2023-03-14

我创建了一个aws Lambda函数,它将hello world打印到控制台

使用类所在的包名和要调用的方法名配置lambda,并将jar文件上载到aws lambda函数。

当我执行lambda时,我得到一个异常,表示找不到类。

消息作为

{
  "errorMessage": "Class not found: com.coreservice.lambda.Handler",
  "errorType": "class java.lang.ClassNotFoundException"
}

无法理解为什么aws无法在jar中找到类。

以下是项目配置的详细信息

public class Handler implements RequestHandler<SNSEvent, Object> {
    
       @Override
        public Object handleRequest(final SNSEvent input, final Context context) {
                if (Objects.nonNull(input) && !CollectionUtils.isNullOrEmpty(input.getRecords())) {
                    context.getLogger().log("Hello World");
                    context.getLogger().log("queue = "+ SQS_URL);
                }
                return StringUtils.EMPTY;
            }
}

项目pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.coreservice</groupId>
    <artifactId>SNS-SQS-Filter-Lambda</artifactId>
    <packaging>jar</packaging>
    <version>136.0.0-SNAPSHOT</version>
    <name>SNS-SQS-Filter-Lambda</name>
    <dependencies>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-lambda-java-core</artifactId>
            <version>1.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-lambda-java-events</artifactId>
            <version>1.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.14</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.3</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source> <!-- or 1.8 -->
                    <target>1.8</target> <!-- or 1.8 -->
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <createDependencyReducedPom>false</createDependencyReducedPom>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

共有1个答案

郭琦
2023-03-14

将处理程序的lambda配置更改为:

com.coreservice.lambda.Handler.handleRequest

com.coreservice.lambda.Handler

com。coreservice。拉姆达。处理程序类必须实现com。亚马逊。服务。拉姆达。运行时。RequestHandler接口。

 类似资料:
  • 我正试图为我的Xamarin编写一个内容提供商。Android应用。 我有我的ContentProvider类(./ContentProviders/SitesProvider.cs): 在我的Androidanifest.xml中,我在元素中添加了以下内容 当我尝试运行我的应用程序时,我收到以下错误消息: JAVAlang.RuntimeException:'无法获取提供程序com。沙马林。样品

  • 问题内容: 我从这篇博客文章中获得了帮助: 但是我发现com.mysql.jdbc.driver类未找到异常。那篇博客文章的不同之处在于,在我的案例中,他们尝试连接到mysql而不是MS SQL。到目前为止,这是我的代码:package com.example.dbtry; 请告诉我我在做什么错。我还在清单中添加了对Internet的许可。 问题答案: 从以下位置下载jar:http://www.

  • 我在将Web应用程序部署到WebLogic服务器12c时遇到问题。Web应用程序依赖于服务jar(内部依赖于Hibernate类)。当我构建战争时,它不包括Web应用程序的WEB-INF/lib/文件夹中的hibernate-entitymanager.jar,并且它的部署失败,例外是“ClassNotFoundExceptionorg.hibernate.ejb.HibernatePeraxy”

  • 我的应用程序超过了64k个方法,所以我应该实现多索引,最初我遇到的问题是“本地路径不存在”,我解决了这个问题,现在gradle生成了类1。dex和classes2。dex,但在低于Lollipop的环境中不工作。。它在Lollipop中工作得很好,因为它有天然的支持。错误是这样说的“ 看过一些教程后,他们说必须改变1.gradle2.application3.manifest 我对申请课了解不多.

  • 我试图通过JWS为我的java项目分发签名jar,我所做的是 我已经把我的班级档案装进了一个罐子 使用keytool-keytool-genkey-keystore xxx-alias xxx创建密码 使用jarsigner-keystore xxx测试对jar进行签名。jar xxx-命令 但我的错误是没有发现类异常。太阳安全工具。贾西纳。 我使用的是JDK1.6.0.21。我试着打开工具。ja

  • 问题内容: 我在项目中使用了KSOP2,并且这些天一直都在工作。最近,我买了一台新机器,并将项目移到新机器上,并将ksoap库导入到项目等中,当我尝试运行该应用程序时,我在模拟器中遇到以下错误 这是引发异常的地方。 与64位计算机有关?? 这些年来一直有效的应用程序为何突然停止工作?有人可以启发我。我坚持下去。谢谢您的时间。 问题答案: 我设法通过解决问题 在项目中创建一个文件夹“ libs” 将