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

Apache Camel集成Telegram组件遇Unsupported endpoint type错误求助

解决Apache Camel Telegram组件路由创建失败的问题

问题根源

你碰到的错误Unsupported endpoint type for uri telegram://bots/123456789:AAAAAAAAAAAAAAA,本质是Telegram组件的URI格式用错了,导致Camel没法正确识别端点类型。

你当前把Bot令牌直接拼在bots后面的写法:

from("telegram:bots/123456789:AAAAAAAAAAAAAAAAAAA")
.to("telegram:bots/123456789:AAAAAAAAAAAAAAA");

Camel的URI解析逻辑会自动把telegram:bots/xxx转成telegram://bots/xxx(这是Camel统一的URI规范,scheme后面默认补//),但Telegram组件根本不支持把令牌放在路径里,它要求用查询参数来传递授权令牌。

正确写法

把路由URI改成Telegram组件要求的格式,用authorizationToken参数传递Bot令牌:

@Override
public void configure() {
    String botToken = "123456789:AAAAAAAAAAAAAAAAAAA";
    // 用fromF/toF格式化字符串,避免拼接错误
    fromF("telegram:bots?authorizationToken=%s", botToken)
        .bean(ChatBotLogic.class)
        .toF("telegram:bots?authorizationToken=%s", botToken);
}

额外建议

  1. 避免硬编码令牌:把Bot令牌放到配置文件(比如application.properties)里,用Camel的属性占位符引用更安全易维护:
    bot.auth.token=123456789:AAAAAAAAAAAAAAAAAAA
    
    路由中这样使用:
    from("telegram:bots?authorizationToken={{bot.auth.token}}")
        .bean(ChatBotLogic.class)
        .to("telegram:bots?authorizationToken={{bot.auth.token}}");
    
  2. 版本对齐检查:确保camel-telegram的版本和camel-core、camel-main完全一致,版本不兼容也可能导致组件加载异常。

关于双斜杠的疑问

这是Camel的标准URI解析行为,当你写scheme:path时,Camel会自动规范化成scheme://path(符合URI的RFC标准)。但Telegram组件不支持在路径里传令牌,所以才会触发“不支持的端点类型”错误——核心还是URI格式不对,不是双斜杠本身的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 18:47:51