我有一个用Grails 2.3.8编写的大项目。有时,当我使用CI部署它时,会收到以下消息:

由于StackOverflowError,无法完成对Web应用程序[/ ProjectName ## 1152]注释的扫描。

可能的根本原因包括-Xss的设置太低以及非法的循环继承依赖性。
正在处理的类层次结构为

[org.bouncycaSTLe.asn1.ASN1EncodableVector-> org.bouncycaSTLe.asn1.DEREncodableVector-> org.bouncycaSTLe.asn1.ASN1EncodableVector]

我已经增加了Xss设置,但是很明显,但是也许我错了,有一个循环引用:
org.bouncycaSTLe.asn1.ASN1EncodableVector-> org.bouncycaSTLe.asn1.DEREncodableVector-> org.bouncycaSTLe.asn1.ASN1EncodableVector

我认为您可以避免检查,我不能删除该库,因为我需要它。但是我不知道如何在Grails中做到这一点。我可以排除它们,但这不是我想要的。

非常感谢您的任何建议

be

更新
我刚刚解决了这个问题。我删除了buildConfig文件中的所有BouncycaSTLe库痕迹。没有依赖或排除的痕迹。只需在crypto.2.0中添加插件即可,一切正常!

最佳答案

我认为这是因为从classpath引用了两个版本的JAR。

这通常是由于加载了不同版本的 bcprov-jdk * .jar 而引起的。

For example, IN one of my scenario - I had

..../webapps/FOO/WEB-INF/lib/bcprov-jdk15on-147.jar
..../webapps/FOO/WEB-INF/lib/bcprov-jdk15on-1.51.jar

从我的类路径中删除其中任何一个后,我得到了解决。

关于grails - 避免在grails中循环引用继承,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23927880/

10-17 00:17