我正在尝试使用 springboot 构建一个 sap java 连接器。要构建这个应用程序,我们需要 sapjco3.jar 和 sapjco3.so。
我正在使用 Hibersap 库并添加了 maven jar 依赖项。在文档中,它说要运行我们需要在 java 参数中传递 java.library.path={path to the .so file} 的应用程序。
该应用程序在 linux 中运行良好,但我面临:
Caused by: java.lang.ExceptionInInitializerError: JCo initialization failed with java.lang.UnsatisfiedLinkError: /usr/lib/libsapjco3.so: libuuid.so.1: cannot open shared object file: No such file or directory
当我尝试在 Docker 中运行时。
我已经在我的 dockerfile 中添加了这个。:
VOLUME ["/var/log/hip"]
ADD maven/@file@ app.jar
COPY libsapjco3.so /usr/lib/libsapjco3.so
RUN chmod a+x -R /usr/lib/libsapjco3.so
RUN sh -c 'touch /app.jar'
CMD [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar --logging.path=/var/log/hip"]
我正在尝试使用以下路径:
System.setProperty("java.library.path","/usr/lib");
正如我所说,这在使用 dll 和 linux 的 windows 中工作,但在运行 linux 的 docker 中失败。