公司有个站点用的公司内部的自研的类springMVC框架WF,所以在这个项目中没有引入spring,而是直接使用的WF框架中的。
今天写代码,使用了lambda表达式,然后启动项目就报下面的异常:
BeanDefinitionStoreException Failed to read candidate component class
上面的异常导致这个有问题的java文件对应的class文件是有问题的,用jd-jui反编译工具打不开,因为文件是损坏的。
然后在stackoverflow上找到了类似的问题,也看到了解答,如下:
对应的链接 stackoverflow
平时有问题习惯去stackoverflow上去查,很多问题都能迎刃而解。
然后我就看自己的代码中哪里用了jdk8的新特性,然后定位到lambda表达式,把lambda表达式替换了,就启动ok了。
备注:如何查看项目中依赖的jar包的版本,进入到pom文件所在目录,使用 mvn dependency:tree命令查看,可以参考我另一篇文章 点击打开链接
现在spring都更新到5了,还有用3的项目,这样在用jdk8+的新特性时要小心了,如果遇到这个问题,可以尝试往这个方向考虑。