springboot java 类引用仅存在大小写不同引发血案(Exception encountered during context initialization 特殊场景问题解决)

坑爹指数:🌟🌟🌟🌟🌟

坑爹原因:仅IDEA调试会出现并且未能正常提示错误原因,而使用java -jar xxx.启动服务缺不存在完整类名冲突。

环境:springboot+idea

场景:项目存在包名+类名仅存在大小写不同会导致IDEA无法正常启动服务,但是打印warn日志并未正确提示命名冲突。

复现步骤:
1、在com.test包并新增两个类,一个类命名为HelloTest.class(完整引用com.test.HelloTest),另一个类命名为HelloTEST.class(完整引用com.test.HelloTEST),service对两个类都进行引用。
2、启动服务
3、服务会输出warn日志后关闭服务
Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘HelloTestServiceImpl’: Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [com.test.HelloTestServiceImpl] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]

解决方案:
重构冲突的类名。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值