Ticket #45 (closed defect: worksforme)
NoClassDefFoundError for NamespacePrefixMapper in Java 1.6
| Reported by: | anonymous | Owned by: | somebody |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | component1 | Version: | |
| Keywords: | Cc: |
Description
Running docx4j 2.5.0 with Java 1.6 which uses its own JAXB implementation throws a NoClassDefFoundError? because com.sun.xml.bind.marshaller.NamespacePrefixMapper? is now internal.
java.lang.NoClassDefFoundError: com/sun/xml/bind/marshaller/NamespacePrefixMapper at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at org.docx4j.XmlUtils.JAXBElementDebug(XmlUtils.java:180) at org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart.traverseMainDocumentRecursive(MainDocumentPart.java:530) at org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart.traverseMainDocumentRecursive(MainDocumentPart.java:450) at org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart.getStylesInUse(MainDocumentPart.java:390) at [...]
Change History
Note: See
TracTickets for help on using
tickets.

If you are building docx4j from sources, prior to http://dev.plutext.org/trac/docx4j/changeset/1196 you had to have both Java 6 and the JAXB reference implementation.
Since http://dev.plutext.org/trac/docx4j/browser/trunk/docx4j/src/main/java/org/docx4j/jaxb/NamespacePrefixMapperUtils.java?rev=869 you should be able to run docx4j binaries using either the Java 6 or JAXB reference implementations.
See comment at top of http://dev.plutext.org/trac/docx4j/browser/trunk/docx4j/src/main/java/org/docx4j/jaxb/NamespacePrefixMapperUtils.java?rev=1196 for gotchas.
I suggest you try a docx4j nightly build.
If you have any further problems, please raise them in the forum first.