我有一个用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中做到这一点。我可以排除他们,但这不是我想要的。
非常感谢任何建议
NIBE
更新 我刚刚解决了这个问题。我删除了buildConfig文件中每个bouncycastle库的痕迹。没有任何依赖或排除痕迹。只需在crypto.2.0中添加插件,一切正常!
答案 0 :(得分:9)
我认为是因为从类路径引用了两个版本的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
我从类路径中删除了其中任何一个后解决了这个问题。