Apache Camel 4.8.0中MicrometerObservationTracer类未找到异常求助
Apache Camel 4.8.0链路追踪配置:解决ClassNotFoundException问题
问题场景
在基于Spring Boot的Apache Camel 4.8.0项目中,尝试通过Micrometer和Brave启用链路追踪,配置了以下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.zipkin.reporter2</groupId> <artifactId>zipkin-reporter-brave</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-tracing-bridge-brave</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-micrometer</artifactId> <version>4.8.0</version> </dependency> <dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-observation-starter</artifactId> <version>4.8.0</version> </dependency>
启动时抛出ClassNotFoundException,具体异常栈如下:
Caused by: java.lang.IllegalStateException: Failed to introspect Class [org.apache.camel.observation.starter.ObservationAutoConfiguration] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528] at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483) at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:320) at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:149) at org.springframework.context.annotation.ConfigurationClassParser.retrieveBeanMethodMetadata(ConfigurationClassParser.java:413) at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:336) at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:246) at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:534) ... 17 common frames omitted Caused by: java.lang.NoClassDefFoundError: org/apache/camel/observation/MicrometerObservationTracer at java.base/java.lang.Class.getDeclaredMethods0(Native Method) at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3578) at java.base/java.lang.Class.getDeclaredMethods(Class.java:2676) at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465) ... 23 common frames omitted Caused by: java.lang.ClassNotFoundException: org.apache.camel.observation.MicrometerObservationTracer at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ... 27 common frames omitted
解决方案
缺失的org.apache.camel.observation.MicrometerObservationTracer类属于**camel-micrometer-observation**模块,需要添加对应的Spring Boot Starter依赖到pom.xml中:
<dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-micrometer-observation-starter</artifactId> <version>4.8.0</version> </dependency>
补充说明
- 原有的
camel-micrometer是传统的Micrometer指标收集依赖,而camel-micrometer-observation是基于Micrometer Observation API实现的链路追踪集成,与camel-observation-starter配套使用。 - 确保该依赖的版本与项目中Camel的版本(4.8.0)完全一致,避免版本不兼容问题。
内容的提问来源于stack exchange,提问作者Praveen kumar
相关产品推荐
相关产品推荐

