问题描述
我正在创建将数据发送到SAP BO系统的应用程序。
当我从IntelliJ启动应用程序时,它工作正常,但是当我从Docker启动它时,我有一个例外:
Exception in thread "Thread-17" java.lang.NoClassDefFoundError: Could not initialize class com.rsa.cryptoj.o.co
at com.rsa.jsafe.CryptoJ.isFIPS140Compliant(Unknown Source)
at com.businessobjects.bcm.internal.BcmRsaLib.initialize(BcmRsaLib.java:214)
at com.businessobjects.bcm.internal.BcmRsaLib.<clinit>(BcmRsaLib.java:289)
at com.businessobjects.bcm.BCM.<clinit>(BCM.java:1158)
at com.crystaldecisions.enterprise.ocaframework.BCMInitializer.run(BCMInitializer.java:29)
at java.lang.Thread.run(Thread.java:748)
我知道这些罐子放在胖罐子lib文件夹中,但是我想将它们放在单独的文件夹中,就像在Dockerfile中看到的那样:
FROM openjdk:8-jre
VOLUME /tmp
ARG APP_NAME
COPY build/libs/${APP_NAME}.jar app.jar
RUN mkdir sapLibs
COPY libs/certjFIPS.jar /sapLibs/certjFIPS.jar
COPY libs/cryptojce.jar /sapLibs/cryptojce.jar
COPY libs/cryptojFIPS.jar /sapLibs/cryptojFIPS.jar
COPY libs/jcmFIPS.jar /sapLibs/jcmFIPS.jar
COPY libs/ssljFIPS.jar /sapLibs/ssljFIPS.jar
RUN chmod a+x -R /sapLibs/certjFIPS.jar
RUN chmod a+x -R /sapLibs/cryptojFIPS.jar
RUN chmod a+x -R /sapLibs/cryptojce.jar
RUN chmod a+x -R /sapLibs/jcmFIPS.jar
RUN chmod a+x -R /sapLibs/ssljFIPS.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Djava.library.path=/sapLibs","/app.jar"]
我的build.gradle:
compile files("libs/bcm.jar")
compile files("libs/biarengine.jar")
compile files("libs/ceaspect.jar")
compile files("libs/cecore.jar")
compile files("libs/celib.jar")
compile files("libs/ceplugins_core.jar")
compile files("libs/ceplugins_core.jar")
compile files("libs/cesession.jar")
compile files("libs/corbaidl.jar")
compile files("libs/ebus405.jar")
compile files("libs/logging.jar")
compile files("libs/TraceLog.jar")
compile files("libs/cryptojFIPS.jar")
//external
compile files("libs/certjFIPS.jar")
compile files("libs/cryptojce.jar")
compile files("libs/jcmFIPS.jar")
compile files("libs/ssljFIPS.jar")
我尝试了compileOnly,以确保这些外部jar不在胖子中,但仍然没有运气。 我应该将这些库放在其他地方还是将其添加到classpath中?请帮忙。我没有更多的想法来解决这个问题
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)