Skip to content

Commit 315a090

Browse files
docs: add troubleshooting for ClassNotFoundException OtelSdkSetup
Customers on pre-1.3.0-beta.2 JARs (thin JARs without bundled core) hit this error when installing via mvn install:install-file because the generated POM has no dependencies. Added diagnosis, fix, and verification command to the Troubleshooting section. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 9d3f913 commit 315a090

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,26 @@ Vert.x 4 handles outgoing HTTP propagation automatically for any client created
284284

285285
## Troubleshooting
286286

287+
### ClassNotFoundException / NoClassDefFoundError: OtelSdkSetup
288+
289+
```
290+
Exception in thread "main" java.lang.NoClassDefFoundError: io/last9/tracing/otel/OtelSdkSetup
291+
Caused by: java.lang.ClassNotFoundException: io.last9.tracing.otel.OtelSdkSetup
292+
```
293+
294+
**Cause**: You are using a JAR built before version 1.3.0-beta.2. Earlier JARs were thin — `OtelSdkSetup` and `MdcTraceTurboFilter` lived in a separate `vertx-otel-core` artifact that was pulled in as a Maven transitive dependency. When installed manually via `mvn install:install-file -DgeneratePom=true`, the generated POM has no dependencies, so `vertx-otel-core` is never resolved and the class is missing at runtime.
295+
296+
**Fix**: Download the latest JAR from [GitHub Releases](https://github.com/last9/vertx-opentelemetry/releases). Since 1.3.0-beta.2 the JAR is fully self-contained — `vertx-otel-core`, the full OpenTelemetry SDK, and all instrumentation are bundled inside the single JAR. No separate `vertx-otel-core` dependency is needed.
297+
298+
You can verify a JAR is self-contained before installing it:
299+
300+
```bash
301+
jar -tf vertx3-rxjava2-otel-autoconfigure-1.3.0.jar | grep OtelSdkSetup
302+
# Should print: io/last9/tracing/otel/OtelSdkSetup.class
303+
```
304+
305+
If nothing is printed, the JAR is the old thin version — upgrade.
306+
287307
### All requests appear in one giant trace (cascading spans)
288308

289309
If every HTTP request on the same event-loop thread shows up as part of a single cascading trace

0 commit comments

Comments
 (0)