java - 在 AWS Java Lambda 中找不到类异常
问题描述
这是我们得到的例外
Exception:
java.lang.ClassNotFoundException: com.A.B.C.ZZZZZZZZZZZZZZZZZZ
at java.base/java.net.URLClassLoader.findClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
所有源代码都在根目录中,而lib在lib目录中
当从本地机器而不是从 Jenkins 构建时,这有效
在 jenkins 和本地 mac 上,我们使用 Gradle 进行编译,Gradle zip 构建了 zip 工件
更具体地说,我在这里关注了https://docs.aws.amazon.com/lambda/latest/dg/create-deployment-pkg-zip-java.html
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'jars', include: '*.jar')
}
task buildZip(type: Zip) {
from compileJava
from processResources
into('lib') {
from configurations.runtimeClasspath
}
}
似乎这还不够,我们还需要使用 chmod
解决方案
根文件夹没有每个人的读取权限。为了解决这个问题,我必须chmod
在 zip 任务之前调用以正确设置权限。
推荐阅读
- c++ - 在 C++ 中查找两个索引之间的子字符串
- python - 命令在 bash 终端中工作,但在 Python subprocess.Popen() 中不工作;得到一个'路径必须在表达式之前:'%p'错误
- ios - 滚动后 TableView 单元格颜色重置
- python - 使用 pip 安装 tensorflow-serving-api 而不自动更新 tensorflow
- python - 字符串和整数和的Python连接
- android - Android从资产或资源中获取文件
- html - 如何使我的长高图像滚动条可见并且图像本身可见
- rcpp - 从 Rcpp 函数生成 XPtr
- javascript - 期望验证器返回 Promise 或 Observable
- java - LMAX Disruptor Producer 在消费者完成读取之前错误地环绕 + 覆盖