我有一个用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/