3

我收到此消息,但我不知道如何解决此问题。在网上搜索并试图实施他们的建议,但没有运气。 enter image description hereAWS Lambda:class java.lang.ClassNotFoundException

我基本上遵循这个链接指定的指令 - http://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/lambda-tutorial.html

但不是上传使用AWS管理控制台嵌入到Eclipse项目中,我试图创建我的项目的zip并上传到AWS Web控制台。

下面是我的项目的结构 - enter image description here

这就是它!我在这里尝试做的没有什么奇特的。这只是Lambda中的HelloWorld示例。现在

,这是我如何创建压缩文件,这是非常在Eclipse直截了当 - enter image description here

一旦拉链创建我上传到AWS Web控制台的代码标签下 - enter image description here

的配置选项卡上看起来是这样的 - enter image description here

现在,当我点击测试按钮就无法找到example.Hello类。

为什么Lambda函数变得如此难以找到这个类?任何人都可以建议在执行过程中可能会出错吗?

还附上日志声明,在情况下,它可以帮助 -

enter image description here

+2

我解决此问题,进行以下更改 - 首先, 我已经改变了方法签名为:: 公共字符串的handleRequest(地图<字符串,对象>输入上下文的背景下) :: 和第二,而不是将其导出为zip文件,而是在AWS Lambda能够找到该类之后做出这两个更改后,将其导出到普通jar文件中。希望这有助于节省您的时间。 – Rito

+0

只是想叮当响,我尝试了同样的事情,只是上传超级jar文件到s3而不是它的压缩包,它为我工作。 –

回答

0

我有同样的问题,有什么工作对我来说是,如果你从与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。

+0

我有类似的问题,想知道什么是“阴影”,你为什么认为这解决了问题?对不起,但谈到Java时,我有点不知所措。 – ken

相关问题