java - 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 依赖项有时有助于作为胶带解决方案,但通常每次都是不同的类,即使问题基本相同。什么可能导致这种情况?
解决方案
我能够解决这个问题。显然 IntelliJ 默认 JRE 设置为使用 Java 10,但系统默认设置为 Java 8。将其切换到 Java 8 就可以了。
推荐阅读
- javascript - 为什么这个动画在我的智能手机上滞后?
- curl - 可能是 GCP 防火墙问题的新手?无法让服务器与端口 2086 或 2087 上的远程服务器通信
- ruby-on-rails - 活动存储和嵌套属性
- web-scraping - Scrapy spider 未知输出
- android - 如何在 Android 中使用数据绑定获取 SwitchCompat 的检查状态
- ios - 重定向到 App Store 下载的 URL 链接
- logic - 如何在使用 always_comb 构造的 SystemVerilog 模块中正确实现时间延迟?
- excel - 将一堆列移动到 2 列
- for-loop - 在批处理文件下使用 FOR 循环并行启动 msbuild 进程
- c# - 使用 C# 在 Outlook 365 插件中获取单独的名字和姓氏