java - 在 Elastic Beanstalk 上使用 Opencv 运行 Spring boot

标签 java opencv tomcat spring-boot amazon-elastic-beanstalk

我有一个打包为 WAR 的 Spring boot 应用程序,它使用 OpenCV 进行一些图像处理,我想在 Elastic Beanstalk(Tomcat 环境)上运行它。有没有办法将它与 native Opencv 库一起打包?

在我具有以下配置的本地计算机上一切正常:

  • Tomcat 8 在 Eclipse 中运行,我的应用程序已部署到它。
  • 我的电脑上安装了 Opencv 3.1
  • opencv_310.jar放在src/webapp/WEB-INF/lib
  • Opencv 添加到 Java 构建路径 (path/to/opencv/build/bin)
  • 使用 VM 参数运行的 Tomcat -Djava.library.path=path/to/opencv/opencv/build/lib

这个设置工作正常,我什至可以用 maven clean pakcage 打包它.

但是,如果我想部署到 Amazon Elastic Beanstalk,我不能假设 Opencv 会安装在该机器上(它不会),所以我需要以某种方式将它打包到我的 WAR 文件中,这样一切都是独立的.

当我将我的 WAR 部署到 ELB 时,我总是得到

java.lang.UnsatisfiedLinkError: no opencv_java300 in java.library.path

当使用 System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 加载 Opencv 时

我为 archaic versions 找到了一些这方面的教程Opencv,但我似乎无法弄清楚如何轻松地做到这一点。我很乐意提供任何提示,因为我已经坚持了很长时间。

最佳答案

当您运行 tomcat 服务器时,您可以将路径传递给 native 库,这样它们将被预加载,如下所示:

java -Djava.library.path=...

其他方法是将库放入 tomcat 的主 jar(运行 tomcat 的 jar)所在的文件夹中。

关于java - 在 Elastic Beanstalk 上使用 Opencv 运行 Spring boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35767713/

相关文章:

java - spring和maven类库及访问xml文件

java - 如何使用 hibernate 跟踪结果集大小?

python - 相机不适用于 opencv 但适用于 streamer

c++ - 将值插入已发布的图像?

python - OCR的清洁图像

jakarta-ee - tomcat下的servlet报错

java - Log4j StringMatchFilter 和 denyAll 过滤器属性配置

java - java中如何统计鼠标右键的点击次数?

xml - Ant xml : How to break the long value attribute for options

java - 如何从 Tomcat 流式传输自定义视频