Spring Boot和Docker中的SAP BO连接器-java.lang.NoClassDefFoundError:无法初始化类com.rsa.cryptoj.o.co

问题描述

我正在创建将数据发送到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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...