spring-boot-api-project-seed
spring-boot-api-project-seed copied to clipboard
用@Resource 在导出jar 运行报错Injection of resource dependencies failed 注入失败
在ide 里面运行正常,导出 jar 运行就报错
我在IDEA 运行都正常,用Maven 打包成jar 也正常,运行时候java -jar 就报错注入失败。 @Resource private TArchivesCarTypeService tArchivesCarTypeService; 这里报错。 代码是用CodeGenerator 生成的。 查了大概问题是 @Resource 不能注入抽象类,但是为什么在IntelliJ IDEA 环境下可以正常运行呢?
问题解决,是因为的 intelliJ IDEA 2017.3 版本 用Maven Projets 打包有问题,不知道是我的pom.xml 配置问题还是bug 后面换成用File->Project Structure->Artifacts 打包成jar 运行成功。 花了5天时间一直再解决这个问题, 查了很多资料,基本上解决的办法都一样,大多数是马虎 单词拼错,要么就是没加注解,还有就是抽象类不能实例化,刚开始还以为是抽象类问题,但仔细看我这里的抽象类都是通过继承和接口实现的方式去实现,注入的也是这些实现类,所以没问题。最最关键的是我在IDEA 里面运行都没任何问题,说明代码没问题,有可能是运行环境问题,也查了下jdk 版本,也放到其它服务器上运行,都是提示注入失败,因为都打包成jar 依赖运行的环境都在jar 里面了,跟运行环境没关系, 我用排除法一步一步缩小问题范围,最后剩下打包jar 问题了。 看了jar 里面需要的jar包和classes 都有了,到这里不能确定的就是jar 里面的依赖包很多,但是不知道哪里查看调用这些包的关联配置,应该是Maven 打包时候没有把需要的jar 配置进去,报错只是说注入失败,并没有说找不到类。快被折腾疯了,最后想用其它的jar 打包方法试下,果然成功运行了。 感谢lihengming 无私的开源,让我学到了不少。
同样的问题,我也折腾了一天,也没弄好,看你这个解决办法,我也没弄好,最后改成了war包解决好了,感觉这个应该是bug之类的,但是确实找不到是什么原因