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

Spring Boot中使用自定义Kamelet启动报错:无法找到对应端点

问题描述

尝试在Camel Spring Boot路由中定义并运行一个简单的Kamelet,启动时出现端点找不到的错误。

相关代码与配置

自定义Kamelet文件 (src/main/resources/kamelets/my-kamelet.kamelet.yaml)

apiVersion: camel.apache.org/v1alpha1
kind: Kamelet
metadata:
  name: my-kamelet
spec:
  template:
    from:
      uri: timer:mykamelet?period=1000
      steps:
        - log: "Executing Kamelet scheduled job"

RouteBuilder实现代码

@Component
public class KameletRoute extends RouteBuilder {

    @Override
    public void configure() throws Exception {
         from("kamelet:my-kamelet")
            .log("Executing main route");
    }
}

pom.xml相关依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-spring-boot-starter</artifactId>
    <version>${camel.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-kamelet-starter</artifactId>
    <version>${camel.version}</version>
</dependency>

启动报错信息

ERROR 20372 --- [kamelet-poc] [  restartedMain] o.s.boot.SpringApplication               : Application run failed

org.apache.camel.FailedToCreateRouteException: Failed to create route route1: Route(route1)[From[kamelet:my-kamelet] -> [Log[Executing mai... because of No endpoint could be found for: kamelet://my-kamelet, please check your classpath contains the needed Camel component jar.
排查与解决方案

以下是关键的修复步骤:

  • 确认Camel版本兼容性:使用支持Kamelet的稳定版本(建议3.14.x及以上或4.x系列),过低版本可能不支持Kamelet组件。
  • 补充核心依赖:在pom.xml中添加camel-kamelet核心依赖,starter可能未包含全部必要类:
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-kamelet</artifactId>
        <version>${camel.version}</version>
    </dependency>
    
  • 校验文件路径:确保自定义Kamelet放在src/main/resources/kamelets(复数形式)目录下,Spring Boot才能扫描到。
  • 添加扫描配置:在application.properties中配置Kamelet扫描路径,强制Camel加载自定义Kamelet:
    camel.kamelet.location=classpath:kamelets/*.kamelet.yaml
    
  • 检查命名一致性:确保路由中引用的kamelet:my-kamelet与Kamelet元数据的name: my-kamelet完全一致,大小写敏感。
  • 手动注册组件(可选):如果自动配置未加载Kamelet组件,手动注册Bean:
    @Bean
    public KameletComponent kameletComponent(CamelContext context) {
        return new KameletComponent(context);
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:14:56