Я пытаюсь собрать sap java-коннектор, используя springboot.Для создания этого приложения нам нужны sapjco3.jar и sapjco3.so.
Я использую библиотеку Hibersap и добавил зависимости maven jar.В документации сказано, что для запуска приложения нам нужно передать java.library.path = {путь к файлу .so} в параметрах Java.
Приложение работает нормально в 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, используя DLL и Linux, но не работает в Docker, работающем Linux.