It appears docx4j.2.5.0 is compatible with Grails (v1.3.5) but docx4j.2.6.0 is not. marshaling to a string fails when I change the Grails conf/BuildConfig to use 2.6.0. JAXB makes me dizzy with all its "features" so I was hoping someone can assist. I switched to jdk 1.6 to simplify JAXB situation but still can't get around this error.
Document wmlDocumentEl = (org.docx4j.wml.Document) documentPart.getJaxbElement();
String xml = XmlUtils.marshaltoString(wmlDocumentEl, true);
JAXB: RI not present. Trying Java 6 implementation.
JAXB: Using Java 6 implementation.
jaxb.NamespacePrefixMapperUtils javax.xml.bind.PropertyException: property "com.sun.xml.internal.bind.namespacePrefixMapper" must be an instance of type com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper, not org.docx4j.jaxb.NamespacePrefixMapperSunInternal
javax.xml.bind.PropertyException: property "com.sun.xml.internal.bind.namespacePrefixMapper" must be an instance of type com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper, not org.docx4j.jaxb.NamespacePrefixMapperSunInternal
at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.setProperty(MarshallerImpl.java:501)
at org.docx4j.jaxb.NamespacePrefixMapperUtils.setProperty(NamespacePrefixMapperUtils.java:102)
at org.docx4j.XmlUtils.marshaltoString(XmlUtils.java:379)