YCSB gives error with java 11 java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter Error
envgap__brianfrankcooper__YCSB-1480
01 / FAILURE SIGNATURE
As reported upstream
I have been using YCSB 0.17.0 with mongodb and use measurement type = hdrhistogram. Initially I had java 8 installed on the system. When I upgraded it to Java 11. ycsb run command started giving error:
Not a benchmark task.
- The project already builds and runs before the fix, so there is nothing to repair.
02 / ENVIRONMENT RECIPE
- Base commit
74d013849c3c9a6111e66bdf85ddeffb482d64be- Manifest
core/pom.xml- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
brianfrankcooper/YCSB #1480 · read the original issue
I have been using YCSB 0.17.0 with mongodb and use measurement type = hdrhistogram. Initially I had java 8 installed on the system. When I upgraded it to Java 11. ycsb run command started giving error:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
at org.HdrHistogram.HistogramLogWriter.outputIntervalHistogram(HistogramLogWriter.java:105)
at org.HdrHistogram.HistogramLogWriter.outputIntervalHistogram(HistogramLogWriter.java:127)
at org.HdrHistogram.HistogramLogWriter.outputIntervalHistogram(HistogramLogWriter.java:147)
at site.ycsb.measurements.OneMeasurementHdrHistogram.exportMeasurements(OneMeasurementHdrHistogram.java:112)
at site.ycsb.measurements.Measurements.exportMeasurements(Measurements.java:260)
at site.ycsb.Client.exportMeasurements(Client.java:268)
at site.ycsb.Client.main(Client.java:392)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 7 more
To solve this issue, I added dependency in the hdrhistogram pom.xml file as follows.
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0</version>
</dependency>
mvn install works on hdrhistogram but ycsb run still complains about not having the lib javax.
**mvn version**
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/pkb/maven
Java version: 11.0.9.1, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-1029-aws", arch: "amd64", family: "unix"
Please let me know what I am missing here04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]