Amazon web services AWS SAM:java8/gradle应用程序在部署时失败,ClassNotFound(但在本地运行良好)
说明: java8应用程序在执行Amazon web services AWS SAM:java8/gradle应用程序在部署时失败,ClassNotFound(但在本地运行良好),amazon-web-services,aws-lambda,aws-sam-cli,aws-sam,Amazon Web Services,Aws Lambda,Aws Sam Cli,Aws Sam,说明: java8应用程序在执行sam构建后在本地运行;sam本地调用…但在使用sam包部署时失败,ClassNotFound异常;sam部署 重现问题的步骤: 初始化Java8/gradle应用程序:saminit-r Java8-d gradle&cd sam应用程序 运行sam构建:sam构建——使用容器 观察函数是否在本地成功运行(如果没有上面的sam构建,则会出现相同的ClassNotFound异常):sam local invoke HelloWorldFunction——无事件 打
sam构建后在本地运行;sam本地调用…
但在使用sam包部署时失败,ClassNotFound异常;sam部署
重现问题的步骤:
saminit-r Java8-d gradle&cd sam应用程序
sam构建
:sam构建——使用容器
sam local invoke HelloWorldFunction——无事件
sam包--模板文件template.yaml--输出模板文件packaged.yaml--s3 bucket
sam部署--模板文件packaged.yaml--堆栈名java8 gradle test--功能IAM--区域eu-west-2--空变更集无故障
java8 gradle test HelloWorldFunction-…
,添加任意测试事件并单击测试sam local invoke
时相同的成功响应
在
sam本地调用
和sam包
之间似乎存在一些意想不到的差异,后者没有从sam构建
中提取工件!这是通过使用sam package--output template file packaged.yaml--s3 bucket
解决的,即不指定模板文件。显然,samlocalinvoke
正在拾取构建的调用,但我不允许sam包
调用。请参阅上的说明samDeploy jenkins插件是否有修复程序?
START RequestId: a5e25d74-4a0d-4763-b7a7-383aeede5c82 Version: $LATEST
Class not found: helloworld.App: java.lang.ClassNotFoundException
java.lang.ClassNotFoundException: helloworld.App
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
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)
END RequestId: a5e25d74-4a0d-4763-b7a7-383aeede5c82
REPORT RequestId: a5e25d74-4a0d-4763-b7a7-383aeede5c82 Duration: 58.33 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 69 MB