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

Camel Quarkus中rest转ahc路由报Uri缺失scheme错误如何解决

错误根因

报错的核心原因是Camel AHC组件默认会读取Exchange中携带的原HTTP请求相关Header(比如CamelHttpUri,该Header存储了原请求的相对路径/customer?phone=%2B35677777777),构造目标请求时会错误地用这个相对路径覆盖你配置的目标URL路径,最终因为相对路径没有http/https协议头抛出缺少scheme的异常。

另外你提供的路由代码存在语法问题:endRest();后面多了一个多余的});,编译阶段会报错,记得一并删除。

解决方案

有两种常用的修复方案:

方案一:添加bridgeEndpoint参数(最推荐)

给AHC组件地址添加bridgeEndpoint=true参数,该参数会让AHC组件完全以你配置的URL作为请求目标,忽略Exchange中携带的原HTTP请求的路径、参数相关Header,修改后的toD代码如下:

.toD("ahc:http://localhost:8080/v1/customer?bridgeEndpoint=true")

方案二:手动移除冲突Header

如果你需要保留部分原请求Header,可以在调用AHC之前手动移除会导致路径冲突的Header:

.setHeader(Exchange.HTTP_METHOD, constant("POST"))
// 新增以下代码移除冲突Header
.removeHeader(Exchange.HTTP_URI)
.removeHeader(Exchange.HTTP_PATH)
.removeHeader(Exchange.HTTP_QUERY)
.toD("ahc:http://localhost:8080/v1/customer")

补充说明

如果你的需求是把原GET请求的query参数转为POST请求的form表单参数,还需要额外添加转换逻辑,把CamelHttpQuery对应的内容转存到请求Body中即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:09:03