我收到此消息,我不知道如何解决它。在网上搜索并尝试实施他们的建议,但没有运气。
我基本上遵循了此链接中指定的说明 - 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控制台的代码选项卡下 -
现在当我点击Test按钮时,它无法找到example.Hello类。
为什么Lambda函数找到这个类变得如此困难?任何人都可以建议在执行中可能出现什么问题吗?
还附上了日志声明,以防它有用 -
答案 0 :(得分:1)
我遇到了同样的问题,对我来说有用的是如果你用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>
然后使用:mvn package shade:shade
运行项目以在目标目录中生成jar工件。之后,eclipse应该将正确的jar上传到lambda。
答案 1 :(得分:1)
请注意,RequestHandler接口的泛型类型与默认类型不同:
默认:cursor.execute()
你的:public class Hello implements RequestHandler<Object, String>
它给出ClassNotFoundException的原因
答案 2 :(得分:1)
以下对我有用。
答案 3 :(得分:0)
您可以使用带有 spring-boot-thin-layout 依赖项和其他配置的 spring-boot-maven-plugin 插件代替 maven-shade-plugin,如下面的插件所示。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot.experimental</groupId>
<artifactId>spring-boot-thin-layout</artifactId>
<version>1.0.26.RELEASE</version>
</dependency>
</dependencies>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>aws</shadedClassifierName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer">
<resource>META-INF/spring.factories</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</plugin>
附注: