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

Quarkus环境下调用Jar包内Apache Camel路由遇无可用消费者异常

解决Quarkus Camel跨应用调用路由出现“No consumers available on endpoint”的问题

问题原因

你遇到的问题核心是:App A里定义的direct:startappa路由没有被加载到App B的Camel上下文里。direct是Camel的本地端点,只能在同一个Camel上下文内找到对应的消费者,App B调用时找不到这个端点的消费者,就会抛出异常。

解决步骤

1. 给App A的RouteBuilder添加Quarkus Bean注解

App A的路由类必须被Quarkus识别为Bean,才能在App B依赖时被自动加载。修改App A的路由代码,加上@ApplicationScoped注解:

import jakarta.enterprise.context.ApplicationScoped;
import org.apache.camel.builder.RouteBuilder;

@ApplicationScoped
public class AppARoute extends RouteBuilder {
    @Override
    public void configure() {
        from("direct:startappa")
            .log("app a started");
    }
}

2. 确保App A的打包包含Quarkus元数据

用Quarkus官方的打包命令quarkus build生成jar,这样打包出来的文件会包含Quarkus需要的Bean索引信息,App B依赖时才能正确发现App A里的路由Bean。

3. 检查App B的依赖配置

确认App B的pom.xml里正确引入了App A的依赖,坐标要和你发布到Maven仓库的一致:

<dependency>
    <groupId>你的GroupId</groupId>
    <artifactId>app-a</artifactId>
    <version>你的版本号</version>
</dependency>

4. 验证路由是否被加载

启动App B时,查看日志,搜索App A路由类的名称(比如AppARoute),如果看到类似Adding route from direct:startappa的日志,说明路由已经被成功加载到App B的Camel上下文里,此时再调用就不会报错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:40:57