我正在尝试使用springboot构建一个sap java连接器。为了构建这个应用程序,我们需要sapjco3.jar和sapjco3.so。
我正在使用Hibersap库,并添加了maven jar依赖项。在文档中,它说要运行应用程序,我们需要在java params中传递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");
正如我所说,这在windows中使用dll和linux使用,但在运行linux的docker中失败。
2条答案
按热度按时间irlmq6kh1#
我遇到了同样的问题(WSO2 Docker镜像和SAP集成),尝试在Docker镜像中安装“libuuid”包。SAP连接器正在搜索libuuid,所以我安装了它,它启动了。我在Docker镜像中使用Alpine Linux,这很有帮助:
yruzcnhs2#
我使用**amazoncorretto docker镜像和Sping Boot **应用程序的工作解决方案: