Spring Boot 3.1.1搭配opentelemetry-javaagent后请求报404求助
解决Spring Boot 3.1.1 + OpenTelemetry Java Agent导致请求404的问题
可能的原因及解决方案
1. 检查OpenTelemetry Java Agent版本兼容性
Spring Boot 3.x基于Jakarta EE API,旧版本的OpenTelemetry Java Agent对Jakarta Servlet的支持不完善,会导致Spring MVC的路由映射失效。
- 确保使用1.28.0及以上版本的opentelemetry-javaagent.jar,该版本开始全面支持Spring Boot 3.x的Jakarta环境。
2. 调整OpenTelemetry自动配置开关
部分场景下,Agent的Spring Boot自动配置模块会干扰应用的上下文初始化,导致路由无法正确注册:
- 添加环境变量:
该配置会禁用Agent对Spring Boot自动配置的干预,避免路由映射被覆盖。OTEL_INSTRUMENTATION_SPRING_BOOT_AUTO_CONFIGURATION_ENABLED=false
3. 验证Spring MVC Instrumentation配置
默认情况下Agent会自动Instrument Spring MVC,但如果存在配置冲突,可显式开启并排除不必要的拦截:
- 添加环境变量:
(exclude patterns可根据实际业务路由调整,确保核心API不被排除)OTEL_INSTRUMENTATION_SPRING_MVC_ENABLED=true OTEL_INSTRUMENTATION_SPRING_MVC_EXCLUDE_PATTERNS=/*health*
4. 排查应用上下文初始化日志
启动应用时开启DEBUG日志级别,查看Spring MVC路由注册情况:
- 在
application.properties中添加:
若日志中未显示业务API的路由映射,说明Agent干扰了Bean初始化流程,优先尝试方案2。logging.level.org.springframework.web.servlet.mvc.method.annotation=DEBUG
内容的提问来源于stack exchange,提问作者pkgajulapalli
相关产品推荐
相关产品推荐

