我将Spring引导应用程序打包为使用OpenCV进行某些图像处理的WAR,并且我想在Elastic Beanstalk(Tomcat环境)上运行该应用程序。有没有办法如何与原生Opencv库打包?在Elastic Beanstalk上使用Opencv运行Spring引导
一切都在我的本地机器在那里我有以下配置上工作的罚款:
- 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文件中,遏制。
当我部署我的战争ELB,我总是
java.lang.UnsatisfiedLinkError: no opencv_java300 in java.library.path
与System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
加载opencv的时候我发现这方面的一些教程的OpenCV archaic versions,但我似乎无法弄清楚如何轻松做到这一点。我会很高兴提供任何提示,因为我一直坚持这个很长一段时间。
我在我的机器上安装我的库时正在做localhost。你能否提供一个示例设置如何在未安装opencv的情况下在弹性beanstalk上执行此操作(将本机库置于war文件中以及如何引用它)。我可以;吨似乎得到这一步的权利...... – Smajl
你不应该把本机库投入战争(如果你不使用某些库提取它们并动态加载,例如用birdJ),你可以将它们作为参数给tomcat运行的虚拟机,或者你可以把它们放到tomcat运行的jar文件所在的文件夹中。 –
但有没有办法打包和部署应用程序,所以它不依赖于本机库?我不确定如何在ELB上处理这个问题...... – Smajl