首页 > 解决方案 > 无服务器/AWS Lambda - Scala 示例

问题描述

我正在尝试在 AWS lambda 上使用无服务器部署 scala 项目。我已经按照教程使用了这个模板。在我部署到 AWS 并尝试调用该函数后,我收到此错误

START RequestId: e07358e6-dd11-4f58-a59e-fd080dd257c6 Version: $LATEST
Exception in thread "main" java.lang.Error: java.lang.NoClassDefFoundError: scala/Product
    at lambdainternal.AWSLambda.<clinit>(AWSLambda.java:66)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at lambdainternal.LambdaRTEntry.main(LambdaRTEntry.java:114)
Caused by: java.lang.NoClassDefFoundError: scala/Product
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
    at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68)
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138)
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
    at sun.reflect.generics.repository.ClassRepository.getSuperInterfaces(ClassRepository.java:108)
    at java.lang.Class.getGenericInterfaces(Class.java:913)
    at lambdainternal.EventHandlerLoader.findInterfaceParameters(EventHandlerLoader.java:475)
    at lambdainternal.EventHandlerLoader.wrapRequestHandlerClass(EventHandlerLoader.java:513)
    at lambdainternal.EventHandlerLoader.loadStreamingRequestHandler(EventHandlerLoader.java:571)
    at lambdainternal.EventHandlerLoader.loadEventHandler(EventHandlerLoader.java:580)
    at lambdainternal.AWSLambda.findUserMethods(AWSLambda.java:115)
    at lambdainternal.AWSLambda.startRuntime(AWSLambda.java:286)
    at lambdainternal.AWSLambda.<clinit>(AWSLambda.java:64)
    ... 3 more
Caused by: java.lang.ClassNotFoundException: scala.Product
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 31 more
END RequestId: e07358e6-dd11-4f58-a59e-fd080dd257c6
REPORT RequestId: e07358e6-dd11-4f58-a59e-fd080dd257c6  Duration: 49.35 ms  Billed Duration: 100 ms Memory Size: 1024 MB    Max Memory Used: 25 MB  
RequestId: e07358e6-dd11-4f58-a59e-fd080dd257c6 Process exited before completing request

我是无服务器的新手,我不知道如何解决这个问题。任何帮助表示赞赏!

标签: scalaaws-lambdaserverless

解决方案


我正在做sbt package的是生成一个瘦 jar 文件。我应该这样做sbt assembly,然后它对我有用。


推荐阅读