类文件以错误的顺序添加到jar时的运行时错误

时间:2016-12-23 22:13:26

标签: groovy spring-boot

这是一个非常奇怪的错误,需要一段时间才能知道发生了什么。我们有多个正在构建库的jenkins linux slave。当从一个奴隶测试图书馆时一切都很顺利。当它与另一个测试时,它遇到了一个运行时错误,它试图调用一个不存在的方法签名。经过大量测试后,我能够确定将类文件添加到jar中的顺序确定测试是否有效。有谁知道从哪里开始尝试补救这个?这是groovy类加载中的错误吗? java classloading?任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:0)

我采用的方法是错误状态实际上是正确的状态,并开始详细查看应用程序配置(我在构建团队,所以我不熟悉这个应用程序)并发现一个糟糕的弹簧配置对象。该问题涉及注释扫描程序处理类的顺序。如果首先处理了一个类,它将给出一个错误的配置,这会导致错误的app状态。其他构建服务器后来在配置中使用坏类构建jar,这导致加载了不同的状态,这实际上忽略了坏文件。这就是为什么将类添加到jar中的顺序很重要的原因。我能够纠正错误的配置并永久地解决错误。