У меня есть приложение для загрузки Spring, упакованное как WAR, которое использует OpenCV для обработки некоторых изображений, и я хотел бы запустить его на Elastic Beanstalk (среда Tomcat). Есть ли способ упаковать его с родными библиотеками Opencv?Запуск весеннего ботинка с Opencv на эластичном бобовом стебле
Все работает отлично на моей локальной машине, где я имею следующую конфигурацию:
- Tomcat 8 работает в Eclipse, с моим приложением развернутом к нему.
- OpenCV 3.1 установлена на моем компьютере
opencv_310.jar
помещен вsrc/webapp/WEB-INF/lib
- OpenCV добавлены в путь сборки Java (
path/to/opencv/build/bin
) - Tomcat работает с VM аргументом
-Djava.library.path=path/to/opencv/opencv/build/lib
Эта установка работает отлично и я даже в состоянии упаковать его с maven clean pakcage
.
Однако, если я хочу развернуть на Amazon Elastic Beanstalk, я просто не могу предположить, что Opencv будет установлен на этой машине (это не так), поэтому мне нужно как-то упаковать его в мой WAR-файл, содержатся.
Когда я раскрываю мой WAR в УДР, я всегда получаю
java.lang.UnsatisfiedLinkError: no opencv_java300 in java.library.path
при загрузке OpenCV с System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Я нашел некоторые учебники по этому вопросу для archaic versions из OpenCV, но я не могу показаться, чтобы выяснить, как сделайте это легко. Я был бы рад за любые советы, потому что я давно застрял на этом.
Я делаю это на localhost, когда мои библиотеки установлены на моей машине. Не могли бы вы привести пример настройки, как это сделать на эластичном бобовом стебле без установленного opencv (где поставить исходную библиотеку в военный файл и как ссылаться на нее). Я не могу сделать этот шаг правильным ... – Smajl
Вам не следует вставлять родные библиотеки в войну (если вы не используете какую-либо библиотеку, чтобы извлекать их и динамически загружать, например, с помощью birdJ). Вы можете передать их как аргумент VM, на котором работает tomcat, или вы можете поместить их в ту же папку, где находится jar running tomcat. –
Но есть ли способ упаковать и развернуть приложение, чтобы он не зависел от родных библиотек? Я не уверен, как справиться с этим на ELB ... – Smajl