微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅在 QA 环境而非本地获取“java.lang.NoClassDefFoundError:无法初始化类”?

如何解决仅在 QA 环境而非本地获取“java.lang.NoClassDefFoundError:无法初始化类”?

我见过这个: java.lang.NoClassDefFoundError: Could not initialize class XXX

还有这个:Different methodologies for solving bugs that only occur in production

但我的问题是,鉴于第一个答案是关于这个问题的,我怎么可能只在两个地方中的一个地方出现错误?这不是应该阻止程序在任何位置编译的非常严重的错误吗? (我在文件中正确导入了这个错误发生的类。)

我应该寻找两种环境之间的哪些差异?

关于我在 QA 中遇到的错误的其他问题表明它可能是类本身的一些嵌套问题,但就像我说的那样,如果是这种情况,为什么它只会发生在 QA 环境中?我可以在本地整天对我的程序运行 jmeter 负载/耐力测试,而没有看到此错误

请注意,我不负责 QA 的部署,但有什么我应该问负责的人吗?运行配置差异会是一个潜在的原因吗?

splunk 中的日志不是很有帮助,以下是一个错误实例的例外情况:

[https-jsse-nio-11402-exec-9] 28 Jun 2021 13:29:45,415+0000 ERROR GenericThrowableMapper [{applicationSystemCode=[removed]-app,clientIP=[removed],clusterId=[removed],containerId=[removed],correlationId=[removed],domainName=[removed],hostName=[removed],messageId=[removed],userId=[removed],webAnalyticsCorrelationId=|}]: java.lang.NoClassDefFoundError: Could not initialize class [removed].CDDConfig
    at [removed].execute([removed]AggregationResource.java:77)
    at [removed]AggregationResource$$FastClassBySpringcglib$$7a8c5a8e.invoke(<generated>)

然后它进入包类和一堆行的所有内容。我添加这个是为了询问 - 也许我应该尝试记录其他内容

解决方法

这只是一个自发的猜测,但从经验来看,我怀疑是 JDK/JRE 版本错误。

我目睹的经典案例:您在开发机器上使用 OpenJDK 版本 8.x.x 编译某些内容。您提交/推送,Jenkins CICD 管道开始运行,但有人将其 JAVA_HOME 配置为某些 11.x 版本的 JDK。 -> ClassNotFoundError、NoClassDef 等

如果你不自己部署到QA,你能检查一下代码是用什么JDK编译的吗?或者向执行此操作的人员询问该信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。