【问题标题】:AWS Lambda can't find dependent libraryAWS Lambda 找不到依赖库
【发布时间】:2017-10-10 04:41:55
【问题描述】:

这是我第一次部署到 AWS Lambda,有点卡住了。

我有一个名为 Helpers 的大型 maven 项目,它有许多子模块,其中许多相互依赖。在那里我有一个叫Alerts 的助手。我有一个父目录,一切都成功构建和编译。所以,这很好。

在 Alerts 中有一个名为 PaymentAlerts 的类,其中包含一行

import com.mywebsite.messages.Doers

messages.Doers 在依赖项中的位置。

但是,当我对整个项目执行 mvn package 并找到 alerts-1.0.jar 并将其上传到 AWS Lambda 并将我的处理程序设置为 com.mywebsite.alerts.PaymentAlerts::doAlert 时,我收到以下错误:

{

com.mywebsite.alerts.PaymentAlerts: com/mywebsite/messaging/Doers",

“errorType”:“java.lang.NoClassDefFoundError”

"errorMessage": "加载类出错 }

如何重新配置​​它以找到所有必要的文件?

感谢您的任何帮助!

【问题讨论】:

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


    【解决方案1】:

    AWS Lambda 找不到依赖库

    除了 mvn,您可以通过将所有 jar 放在一个中来处理简单的库依赖关系,您的 MANIFEST 文件包含 Class-Path:libs/xyz.jar libs /abc.jar ...

    希望这个过程可以解决你的“errorType”:“java.lang.NoClassDefFoundError”

    【讨论】:

    • 事实证明,如果您使用maven-shade-plugin,则无需手动执行此操作,一切都会为您完成,您不必担心。至少,它对我有用。谢谢!
    • 它没有用。但是,在查看您的答案并四处寻找之后,我能够找到答案。如有任何问题,请见谅。
    【解决方案2】:

    here 我能够找到有关 maven-shade-plugin 的信息,它很好地将所有内容组合在一起并解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-31
      • 2013-06-20
      • 2015-08-21
      • 2019-08-05
      • 2014-08-26
      • 2014-05-28
      • 2012-08-18
      • 1970-01-01
      相关资源
      最近更新 更多