Spring IOC---Bug处理
1.
org.junit.platform.commons.JUnitException: TestEngine with ID 'junit jupiter' failed to discover tests
解决:maven--clean、install
2. 无效的目标发行版:16
解决:
再maven- install ,若问题仍旧没有解决
pom.xml 里修改一下,再install就好了
再测试运行一下,问题1解决了,离成功不远了!!
然后我直接debug运行了一下,就好了,有点子猝不及防
3. java.lang.NoClassDefFoundError: service/MyBeanService
参考文章:怎么解决java.lang.NoClassDefFoundError错误
https://blog.csdn.net/jamesjxin/article/details/46606307
NoClassDefFoundError错误发生的原因
NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。例如在运行时我们想调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出NoClassDefFoundError错误。与ClassNotFoundException的不同在于,这个错误发生只在运行时需要加载对应的类不成功,而不是编译时发生。很多Java开发者很容易在这里把这两个错误搞混。
简单总结就是,NoClassDefFoundError发生在编译时对应的类可用,而运行时在Java的classpath路径中,对应的类不可用导致的错误。
4. log4j 报错
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
————————————————
添上依赖:
首先将 log4j.properties 文件放到 resources 文件夹下
log4j.rootLogger=WARN, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=(%r ms) [%t] %-5p: %c#%M %x: %m%n
log4j.logger.com.genuitec.eclipse.sqlexplorer=DEBUG
log4j.logger.org.apache=WARN
log4j.logger.org.hibernate=WARN
5. Spring抛java.lang.IllegalStateException: Cannot load configuration class异
解决方案:
将项目SDK从jdk_16换成jdk_1.8即可
6. 【Java】OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes…… 的解决方法
解决方法:在顶部栏里选择File → Settings… → 输入async+回车 → 把图中的勾选的√
去掉 → 保存
7. TestEngine with ID 'junit-vintage' failed to discover tests
原因分析:
(1)maven 包冲突问题
(2)junit-vintage 是 Junit 4 中使用的引擎,如果你的项目使用了 Junit 5 的话,你需要在 spring-boot-starter-test 中将 JUnit 4 的引擎从测试中删除。
解决方法:
方法1:添加依赖
<dependency> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> <version>5.7.0</version> <scope>test</scope> </dependency>
结果:没用
方法2:删除方法1依赖后操作
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency>
8.org.springframework.context.support.ClassPathXmlAp和class path resource [src/applicationContext.xml]
见 https://blog.csdn.net/qq_45321679/article/details/108772764
原因可能是:
(1)maven依赖中pom.xml出现多个重名依赖的问题;
(2)maven依赖中pom.xml少了spring-context依赖的问题;
(3)applicationContext.xml中Bean的id重名问题;
(4)servlet的url-pattern名字少 / 的问题;
(5)在artifacts中,没有lib依赖和classes;
(6)spring版本跟jdk版本不兼容;
(7)发现是由于classpath不是指向resource路径,导致一直找不到文件。需要在classpath后面加个*,
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext.xml</param-value> </context-param>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!