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

如何使用Apache Camel将XML payload转换为JSON并解决类路径兼容报错问题

问题原因

这个错误属于Apache Camel与Spring Boot版本不兼容导致的类路径冲突:你当前使用的Camel 2.23.4版本,和项目引入的Spring Boot版本不匹配,才会出现HierarchicalPropertiesEvaluator类的目标方法不存在的报错。

解决方案

1. 统一版本匹配

Camel和Spring Boot有严格的版本对应关系,二选一调整即可:

  • 方案一:保持Camel 2.23.4版本不变,将Spring Boot版本降级到2.1.x系列(推荐2.1.18.RELEASE),Maven父依赖配置参考:
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.18.RELEASE</version>
    <relativePath/>
</parent>
  • 方案二:保持当前Spring Boot版本不变,升级Camel到对应兼容版本:Spring Boot 2.7.x对应Camel 3.18.x版本,Spring Boot 3.x对应Camel 4.x版本,确保所有Camel相关依赖的版本号完全一致。

2. 清理冲突依赖

  • 执行mvn clean install -U强制刷新依赖,也可以手动删除本地maven仓库下的org/apache/camel目录后重新拉取依赖。
  • 执行mvn dependency:tree排查所有Camel相关依赖,若存在不同版本的Camel包间接引入,使用<exclusion>标签排除冲突版本。
额外代码优化提示

你当前路由的逻辑是先把XML转为JSON再做XSD校验,XSD校验仅支持XML格式,会直接校验失败,建议调整逻辑顺序:先完成XSD校验,再执行XML转JSON的操作,参考修改:

from("direct:xmlValidator")
// 先执行XML校验
.choice()
.when(header("ebmName").isEqualTo("pers.marriage.ebm.marrInfo_1.0"))
.to("validator:file:D:/Users/User/Downloads/retail.prod.ebm.subCatgInfo_1.0.xsd")
.end()
// 校验通过后再转JSON
.marshal(xmlJsonFormat)
.log("${body}");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:06:06