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 では失敗しています。