From c9f78d8098a4ff92a066f4bc3c72d01a2ae3f814 Mon Sep 17 00:00:00 2001 From: croway Date: Fri, 4 Sep 2026 10:16:33 +0200 Subject: [PATCH] Fix rest-cxf-opentelemetry example: resolve operation name header, migrate to camel-opentelemetry2 Same bug as the plain rest-cxf example, replicated across all 3 services (random/even/odd): CamelRouter routed on ${header.operationName}, which CXF-RS never sets, instead of ${header.CamelCxfOperationName} which DefaultCxfRsBinding actually populates. Every REST call hit MethodNotFoundException (500). Also migrate off camel-opentelemetry (v1), which logs a deprecation warning, to camel-opentelemetry2 - swap the starter artifactId and the @CamelOpenTelemetry annotation for @CamelOpenTelemetry2 in each service's Application class, matching the convention already used by the sibling opentelemetry/*Booking examples. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01JvQJNT1UYzqUm5HQtkL6Nu --- rest-cxf-opentelemetry/pom.xml | 2 +- .../apache/camel/example/springboot/cxf/otel/Application.java | 4 ++-- .../apache/camel/example/springboot/cxf/otel/CamelRouter.java | 2 +- .../apache/camel/example/springboot/cxf/otel/Application.java | 4 ++-- .../apache/camel/example/springboot/cxf/otel/CamelRouter.java | 2 +- .../apache/camel/example/springboot/cxf/otel/Application.java | 4 ++-- .../apache/camel/example/springboot/cxf/otel/CamelRouter.java | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/rest-cxf-opentelemetry/pom.xml b/rest-cxf-opentelemetry/pom.xml index 9d564a305..4d0244165 100644 --- a/rest-cxf-opentelemetry/pom.xml +++ b/rest-cxf-opentelemetry/pom.xml @@ -98,7 +98,7 @@ org.apache.camel.springboot - camel-opentelemetry-starter + camel-opentelemetry2-starter diff --git a/rest-cxf-opentelemetry/rest-cxf-otel-even/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java b/rest-cxf-opentelemetry/rest-cxf-otel-even/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java index 15b7d453f..8fa6b692c 100644 --- a/rest-cxf-opentelemetry/rest-cxf-otel-even/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java +++ b/rest-cxf-opentelemetry/rest-cxf-otel-even/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java @@ -16,14 +16,14 @@ */ package org.apache.camel.example.springboot.cxf.otel; -import org.apache.camel.opentelemetry.starter.CamelOpenTelemetry; +import org.apache.camel.opentelemetry2.starter.CamelOpenTelemetry2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; // CHECKSTYLE:OFF @SpringBootApplication -@CamelOpenTelemetry +@CamelOpenTelemetry2 public class Application { /** diff --git a/rest-cxf-opentelemetry/rest-cxf-otel-even/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java b/rest-cxf-opentelemetry/rest-cxf-otel-even/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java index 255a9e6c0..528a79b57 100644 --- a/rest-cxf-opentelemetry/rest-cxf-otel-even/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java +++ b/rest-cxf-opentelemetry/rest-cxf-otel-even/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java @@ -48,7 +48,7 @@ public void configure() throws Exception { "&loggingFeatureEnabled=true") .to("log:camel-cxf-log?showAll=true") .toD("bean:org.apache.camel.example.springboot.cxf.otel.EvenServiceImpl" + - "?method=${header.operationName}"); + "?method=${header.CamelCxfOperationName}"); from("direct:register").routeId("even-register") diff --git a/rest-cxf-opentelemetry/rest-cxf-otel-odd/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java b/rest-cxf-opentelemetry/rest-cxf-otel-odd/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java index 15b7d453f..8fa6b692c 100644 --- a/rest-cxf-opentelemetry/rest-cxf-otel-odd/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java +++ b/rest-cxf-opentelemetry/rest-cxf-otel-odd/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java @@ -16,14 +16,14 @@ */ package org.apache.camel.example.springboot.cxf.otel; -import org.apache.camel.opentelemetry.starter.CamelOpenTelemetry; +import org.apache.camel.opentelemetry2.starter.CamelOpenTelemetry2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; // CHECKSTYLE:OFF @SpringBootApplication -@CamelOpenTelemetry +@CamelOpenTelemetry2 public class Application { /** diff --git a/rest-cxf-opentelemetry/rest-cxf-otel-odd/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java b/rest-cxf-opentelemetry/rest-cxf-otel-odd/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java index 26ccf0708..e24e89dbf 100644 --- a/rest-cxf-opentelemetry/rest-cxf-otel-odd/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java +++ b/rest-cxf-opentelemetry/rest-cxf-otel-odd/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java @@ -48,7 +48,7 @@ public void configure() throws Exception { "&loggingFeatureEnabled=true") .to("log:camel-cxf-log?showAll=true") .toD("bean:org.apache.camel.example.springboot.cxf.otel.OddServiceImpl" + - "?method=${header.operationName}"); + "?method=${header.CamelCxfOperationName}"); from("direct:register").routeId("odd-register") diff --git a/rest-cxf-opentelemetry/rest-cxf-otel-random/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java b/rest-cxf-opentelemetry/rest-cxf-otel-random/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java index 15b7d453f..8fa6b692c 100644 --- a/rest-cxf-opentelemetry/rest-cxf-otel-random/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java +++ b/rest-cxf-opentelemetry/rest-cxf-otel-random/src/main/java/org/apache/camel/example/springboot/cxf/otel/Application.java @@ -16,14 +16,14 @@ */ package org.apache.camel.example.springboot.cxf.otel; -import org.apache.camel.opentelemetry.starter.CamelOpenTelemetry; +import org.apache.camel.opentelemetry2.starter.CamelOpenTelemetry2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; // CHECKSTYLE:OFF @SpringBootApplication -@CamelOpenTelemetry +@CamelOpenTelemetry2 public class Application { /** diff --git a/rest-cxf-opentelemetry/rest-cxf-otel-random/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java b/rest-cxf-opentelemetry/rest-cxf-otel-random/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java index b1a09e761..86cd56157 100644 --- a/rest-cxf-opentelemetry/rest-cxf-otel-random/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java +++ b/rest-cxf-opentelemetry/rest-cxf-otel-random/src/main/java/org/apache/camel/example/springboot/cxf/otel/CamelRouter.java @@ -50,7 +50,7 @@ public void configure() throws Exception { "&providers=jaxrsProvider,openTelemetryProvider" + "&loggingFeatureEnabled=true") .to("log:camel-cxf-log?showAll=true") - .setHeader("methodName", simple("${header.operationName}")) + .setHeader("methodName", simple("${header.CamelCxfOperationName}")) .toD("bean:org.apache.camel.example.springboot.cxf.otel.RandomServiceImpl?method=${header.methodName}");