首页 > 解决方案 > IntelliJ 随机无法使用 NoClassDefFoundError 加载 Spring JUnit 测试的 ApplicationContext

问题描述

我无法粘贴整个堆栈跟踪,但通常情况下,通过命令行运行良好并且上次通过 IDE 运行良好的单元测试在通过 IntelliJ 运行时突然开始失败。它总是像

java.lang.IllegalStateException: Failed to load ApplicationContext
...
...Long meaningless stack trace
...
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'serviceClass' threw exception; nested exception is java.lang.NoClassDefFoundError: javax/xml/ws/soap/MTOM
...
...Even more generic stack trace

...

这尤其令人困惑,因为它找不到的类是类似的默认库类。将无法找到的类添加到 Maven 依赖项有时有助于作为胶带解决方案,但通常每次都是不同的类,即使问题基本相同。什么可能导致这种情况?

标签: javaintellij-idea

解决方案


我能够解决这个问题。显然 IntelliJ 默认 JRE 设置为使用 Java 10,但系统默认设置为 Java 8。将其切换到 Java 8 就可以了。


推荐阅读