![在Jenkins中获取Spring错误“名为'x'的Bean必须为[y]类型,但实际上为[$ Proxy]类型”,第1张 在Jenkins中获取Spring错误“名为'x'的Bean必须为[y]类型,但实际上为[$ Proxy]类型”,第1张](/aiimages/%E5%9C%A8Jenkins%E4%B8%AD%E8%8E%B7%E5%8F%96Spring%E9%94%99%E8%AF%AF%E2%80%9C%E5%90%8D%E4%B8%BA%26amp%3B%23039%3Bx%26amp%3B%23039%3B%E7%9A%84Bean%E5%BF%85%E9%A1%BB%E4%B8%BA%5By%5D%E7%B1%BB%E5%9E%8B%EF%BC%8C%E4%BD%86%E5%AE%9E%E9%99%85%E4%B8%8A%E4%B8%BA%5B%24+Proxy%5D%E7%B1%BB%E5%9E%8B%E2%80%9D.png)
摘自上面的问题评论:
您是否在Jenkins上运行Cobertura,Sonar或其他代码工具?请注意,
mvnsite也可能配置为在generate中包含Cobertura报告
site。
Cobertura的问题在于它执行相当繁重的字节码检测,包括添加一些自定义接口。当Spring启动时,它将为bean生成代理。如果bean具有至少一个接口,则它将使用标准Java代理。否则,它将尝试创建基于类的代理。
我猜在您的情况下,使用了CGLIB类代理,但是在Cobertura工具春季之后又回到了Java代理。这导致启动错误,因为依赖项注入期望类(或CGLIB子类)。
简而言之,强制使用CGLIB类代理,您会没事的:
<aop:config proxy-target-/>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)