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

时间:2018-12-14 16:07:46

标签: spring-boot docker sapjco3

我正在尝试使用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中运行时。

我已在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中失败。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题(WSO2 Docker映像和SAP集成),请尝试在Docker映像中安装“ libuuid”软件包。 SAP连接器正在搜索libuuid,因此我安装了它并启动了它。我在Docker映像中使用Alpine Linux,这有所帮助:

apk add libuuid