由于 AWS Fargate 容器中的 bcm.jar 出现 NoClassDefFound 错误,使用 Java SDK 登录 Crystal Report 服务器失败

问题描述 投票:0回答:1

我正在使用 Crystal Report 产品生成 PDF 报告。早些时候我使用的是较低版本的服务器。现在我将服务器升级到最新版本。我得到了相应的Java Crystal Report SDK客户端库。在 AWS Pipeline 中,我可以从存储库下载这些 jar。看起来我们的 spring boot fat jar 打包了除了 bcm.jar 之外的所有必需的 jar。应用程序构建后,发布到工件并部署到 AWS ECS 容器中不会遇到任何挑战。应用程序启动正常,健康检查和所有其他 API 均正常运行。我可以调用其余的 api,使用邮递员生成水晶报告。以下代码片段在 sessionMgr.logon 期间失败

import com.crystaldecisions.sdk.framework.CrystalEnterprise;
import com.crystaldecisions.sdk.framework.IEnterpriseSession;
import com.crystaldecisions.sdk.framework.ISessionMgr;

ISessionMgr sessionMgr = CrystalEnterprise.getSessionMgr();
IEnterpriseSession enterpriseSession = sessionMgr.logon(userId, password, serverName, rasAuthType);

我在登录阶段遇到以下运行时异常。我以这种方式捕捉 Throwable 我能够理解同样的事情

java.lang.NoClassDefFoundError: Could not initialize class com.businessobjects.bcm.BCM
at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.establishConfidentialChannel(ConfidentialChannelService.java:189) ~[cecore-14.3.0.jar!/:14.2.9.4130]
at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.createConfidentialChannel(ConfidentialChannelService.java:149) ~[cecore-14.3.0.jar!/:14.2.9.4130]
at com.crystaldecisions.sdk.occa.security.internal.CCMap.locateCCItem(CCMap.java:63) ~[cecore-14.3.0.jar!/:14.2.9.4130]
at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:938) ~[cecore-14.3.0.jar!/:14.2.9.4130]
at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:892) ~[cecore-14.3.0.jar!/:14.2.9.4130]
at com.crystaldecisions.sdk.occa.security.internal.LogonService.userLogon(LogonService.java:248) ~[cecore-14.3.0.jar!/:14.2.9.4130]
at com.crystaldecisions.sdk.occa.security.internal.SecurityMgr.userLogon(SecurityMgr.java:166) ~[cecore-14.3.0.jar!/:14.2.9.4130]
at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody0(SessionMgr.java:823) ~[cesession-14.3.0.jar!/:14.2.9.4130]
at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody1$advice(SessionMgr.java:523) ~[cesession-14.3.0.jar!/:14.2.9.4130]
at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon(SessionMgr.java:1) ~[cesession-14.3.0.jar!/:14.2.9.4130]

以下是新旧版本的水晶报表罐子

java crystal-reports amazon-ecs
1个回答
0
投票

我在 IBM WebSphere Portal 中部署了该应用程序。在那里,我能够成功部署应用程序,在构建或部署期间不会出现任何问题。后来我能够成功登录到 Crystal Report Server 并生成 PDF 报告。我正在调查当我在 AWS ECS 容器中部署 Docker 映像时出现的问题。 @马克B

© www.soinside.com 2019 - 2024. All rights reserved.