Docker 中的 Sap Java 连接器应用程序

Sap Java Connector Application in Docker

我正在尝试使用 springboot 构建一个 sap java 连接器。要构建此应用,我们需要 sapjco3.jar 和 sapjco3.so。

我正在使用 Hibersap 库并添加了 maven jar 依赖项。 在文档中它说 运行 我们需要的应用程序在 java 参数中传递 java.library.path={.so 文件的路径}。

应用程序 运行 在 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 中尝试 运行 时。

我已将其添加到我的 docker 文件中。 :

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");

正如我所说,这在 windows using dll 和 linux using 中有效,但在 docker 运行ning linux 中失败。 =15=]

我有同样的问题(WSO2 Docker 图像和 SAP 集成),尝试在您的 Docker 图像中安装 "libuuid" 包。 SAP 连接器正在搜索 libuuid,所以我安装了它并启动了。我在 Docker 图像中使用 Alpine Linux,这有帮助:

apk add libuuid