You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Citrus WS模拟器启动报NoSuchFieldError: DEFAULT_CONFIG_CLASS

问题根因

报错核心是Citrus框架大版本依赖共存导致的类不兼容,和JDK版本无关,具体原因:

  • 你手动引入的com.consol.citrus:citrus-ws:3.1.0依赖完全错误:Citrus从3.0.0版本开始已经将所有组件的groupId从com.consol.citrus迁移为org.citrusframework,旧groupId下最高仅发布到2.8.0版本,指定3.1.0版本会拉取到不兼容的2.x时代Citrus核心类。
  • Maven仅按groupId+artifactId判定依赖是否重复,2.x版本(com.consol组)和3.x版本(org.citrusframework组)的Citrus包会被判定为完全独立的依赖,同时存在于classpath中,不会触发版本仲裁。
  • 2.x版本的CitrusSpringConfig类引用了Spring 5.3.x版本中已经移除的ConfigurationClassParser.DEFAULT_CONFIG_CLASS常量,触发NoSuchFieldError,这也是你之前排查Spring依赖没找到问题的原因——Spring本身版本是统一的,是旧版Citrus代码引用了Spring已删除的字段。
解决步骤
  1. 删除pom中手动添加的错误Citrus WS依赖块:
<!-- 直接删除整段 -->
<dependency>
  <groupId>com.consol.citrus</groupId>
  <artifactId>citrus-ws</artifactId>
  <version>${citrus.version}</version>
</dependency>
  1. 由于你生成的是SOAP模拟器项目,将通用simulator starter替换为WS场景专用starter,该starter会自动引入版本匹配的citrus-ws等相关依赖,无需手动指定版本:
<!-- 替换原有的citrus-simulator-starter依赖 -->
<dependency>
  <groupId>org.citrusframework</groupId>
  <artifactId>citrus-simulator-starter-ws</artifactId>
  <version>${citrus.simulator.version}</version>
</dependency>
  1. 清理旧构建产物并强制刷新依赖,执行以下命令:
mvn clean install -U
  1. 启动前可执行命令校验旧版Citrus包是否完全排除,执行结果为空即为正常:
mvn dependency:tree -Dincludes=com.consol.citrus:*

校验通过后直接启动项目即可,Java 11版本完全兼容该版本组合,不需要额外调整JDK版本。


内容的提问来源于stack exchange,提问作者Decly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 18:31:29