В моем проекте Java Server Server мне нужно вызвать собственную библиотеку для обработки изображений (libvips
).Я использую Gradle для создания zip-файла и отправляю в папку lib все зависимости, включая нативные библиотеки:
task buildZip(type: Zip) {
archiveName = "${project.name}.zip"
from compileJava
from processResources
from('.') {
include 'lib/**'
include 'bin/**'
}
into('lib') {
from configurations.runtime
}
}
В сгенерированном zip-файле, в папке lib
есть все библиотеки(jars / native / etc).
После развертывания функции через serverless deploy
я не могу загрузить библиотеку libvips.so
, используя Native.loadLibrary("/var/task/lib/libvips.so", Object.class)
.Видимо в /var/task/lib/
находятся только зависимости java, а не нативные библиотеки.
Есть ли другой путь, в котором AWS хранит собственные библиотеки?
РЕДАКТИРОВАТЬ
Выдается исключение:
ava.lang.UnsatisfiedLinkError: Unable to load library '/var/task/lib/libvips.so': Native library (var/task/lib/libvips.so) not found in resource path ([file:/var/task/, file:/var/task/lib/aopalliance-repackaged-2.5.0-b42.jar, file:/var/task/lib/asm-all-repackaged-2.5.0-b42.jar, file:/var/task/lib/aws-java-sdk-core-1.11.336.jar, file:/var/task/lib/aws-java-sdk-kms-1.11.336.jar, file:/var/task/lib/aws-java-sdk-s3-1.11.336.jar, file:/var/task/lib/aws-lambda-java-core-1.1.0.jar,....