Camel默认根路径/camel修改为/service配置不生效问题咨询
故障原因&修复方案
- 配置格式错误:你提供的application.yml中
camel配置项首行多了前置空格,YAML对缩进敏感度极高,错误缩进会导致配置不生效,同时servlet.context-path建议末尾添加/*保证路径匹配规则生效,修正后的配置如下:
camel: springboot: name: CamelRestContext component: servlet: mapping: enabled: true context-path: /service/*
- 版本兼容问题:上述配置仅适配Camel 3.x版本,如果你使用的是Camel 2.x版本,配置项层级不同,需改为以下格式:
camel: servlet: mapping: context-path: /service/*
- REST DSL配置覆盖:如果你在代码中使用了Camel REST DSL,且显式配置了
contextPath,代码配置优先级高于配置文件,会导致yml配置失效。查找类似代码将contextPath改为/service,或删除该行直接使用配置文件规则即可:
// 原错误配置示例 restConfiguration().component("servlet").contextPath("/camel"); // 修改后 restConfiguration().component("servlet").contextPath("/service");
- 自定义Servlet注册Bean覆盖:如果项目中手动注册了CamelServlet的
ServletRegistrationBean,硬编码了映射路径为/camel/*,需要修改对应路径为/service/*,或删除自定义Bean使用Spring Boot自动装配逻辑。
完成上述修改后重启项目,即可通过http://localhost:8080/service/hello正常访问接口。
内容的提问来源于stack exchange,提问作者Szilágyi István
相关产品推荐
相关产品推荐

