首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS :java8 8/gradle应用程序在部署ClassNotFound时失败(但在本地运行良好)

AWS :java8 8/gradle应用程序在部署ClassNotFound时失败(但在本地运行良好)
EN

Stack Overflow用户
提问于 2019-06-20 16:29:57
回答 1查看 1.5K关注 0票数 1

描述:

java8应用程序在执行sam build; sam local invoke...后在本地运行,但在使用sam package; sam deploy部署时出现ClassNotFound异常时失败

复制问题的步骤:

  1. 初始化Java8 8/gradle应用程序:sam init -r java8 -d gradle && cd sam-app
  2. 运行sam buildsam build --use-container
  3. 注意到函数在本地成功运行(如果没有上面的sam构建,同样的ClassNotFound异常会失败):sam local invoke HelloWorldFunction --no-event
  4. 包+部署:
代码语言:javascript
复制
sam package --template-file template.yaml --output-template-file packaged.yaml --s3-bucket <some bucket name>
sam deploy --template-file packaged.yaml  --stack-name java8-gradle-test --capabilities CAPABILITY_IAM --region eu-west-2 --no-fail-on-empty-changeset
  1. 在AWS控制台中,找到函数java8-gradle-test-HelloWorldFunction-...,添加任意测试事件,然后单击test

观察结果:

执行结果:失败

日志:

代码语言:javascript
复制
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  

预期结果:

与运行此函数的sam local invoke时相同的成功响应。

sam local invokesam package之间似乎有一些意想不到的区别,后者没有从sam build中提取工件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-20 17:55:02

解决了!这是通过使用sam package --output-template-file packaged.yaml --s3-bucket <some bucket name>来修正的(不指定模板文件)。很明显,sam local invoke是在挑选构建好的,但我不允许sam package这样做。参见对https://github.com/awslabs/aws-sam-cli/issues/978的解释

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56690353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档