I am wondering if anyone has the same setup problem:
- Weblogic 12c
- Docx4J 2.8.1
- Java EE 6
I tried to get the contents of a specific Microsoft Word 2007 document with Docx4J, but I got an error similar to the following:
When I try to do:
WordprocessingMLPackage package = WordprocessingMLPackage.load(new File((path));
it will throw an exception, for example:
2013-06-05 15:29:12.0283 ERROR Thread-18 org.docx4j.jaxb.NamespacePrefixMapperUtils – name: com.sun.xml.internal.bind.namespacePrefixMapper value: org.docx4j.jaxb.NamespacePrefixMapperSunInternal@2b0bf3 .. trying RI. javax.xml.bind.PropertyException: name: com.sun.xml.bind.namespacePrefixMapper value: org.docx4j.jaxb.NamespacePrefixMapper@2a3c7c at org.eclipse.persistence.jaxb.JAXBMarshaller.setProperty(JAXBMarshaller.java:590) at org.docx4j.jaxb.NamespacePrefixMapperUtils.tryUsingRI(NamespacePrefixMapperUtils.java:73) at org.docx4j.jaxb.NamespacePrefixMapperUtils.getPrefixMapper(NamespacePrefixMapperUtils.java:64) at org.docx4j.jaxb.Context.<clinit>(Context.java:56) at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:666) at org.docx4j.openpackaging.io.LoadFromZipNG.process(LoadFromZipNG.java:206) at org.docx4j.openpackaging.io.LoadFromZipNG.get(LoadFromZipNG.java:193) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:301) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:245) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:195) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:178) at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:172) 2013-06-05 15:29:12.0455 ERROR Thread-18 org.docx4j.jaxb.NamespacePrefixMapperUtils – JAXB: neither Reference Implementation nor Java 6 implementation present? javax.xml.bind.PropertyException: name: com.sun.xml.bind.namespacePrefixMapper value: org.docx4j.jaxb.NamespacePrefixMapper@2a3c7c at org.eclipse.persistence.jaxb.JAXBMarshaller.setProperty(JAXBMarshaller.java:590) at org.docx4j.jaxb.NamespacePrefixMapperUtils.tryUsingRI(NamespacePrefixMapperUtils.java:73) at org.docx4j.jaxb.NamespacePrefixMapperUtils.getPrefixMapper(NamespacePrefixMapperUtils.java:64) at org.docx4j.jaxb.Context.<clinit>(Context.java:56) at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:666) at org.docx4j.openpackaging.io.LoadFromZipNG.process(LoadFromZipNG.java:206) at org.docx4j.openpackaging.io.LoadFromZipNG.get(LoadFromZipNG.java:193) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:301) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:245) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:195) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:178) at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:172)
As mentioned above, I am using JDK 6, so this should have been impossible. But the above message is suppressed inside Docx4J and instead throws the following exception:
2013-06-05 15:46:38.0392 ERROR Thread-18 com.jonathan.business.catalog.impl.ProductCatalogServiceImpl – Bad [Content_Types].xml org.docx4j.openpackaging.exceptions.InvalidFormatException: Bad [Content_Types].xml at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:699) at org.docx4j.openpackaging.io.LoadFromZipNG.process(LoadFromZipNG.java:206) at org.docx4j.openpackaging.io.LoadFromZipNG.get(LoadFromZipNG.java:193) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:301) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:245) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:195) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:178) at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:172) Caused by: java.lang.NullPointerException at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:666) ... 12 more 2013-06-05 15:46:38.0392 ERROR Thread-18 com.jonathan.business.catalog.impl.ProductCatalogServiceImpl – Bad [Content_Types].xml org.docx4j.openpackaging.exceptions.InvalidFormatException: Bad [Content_Types].xml at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:699) at org.docx4j.openpackaging.io.LoadFromZipNG.process(LoadFromZipNG.java:206) at org.docx4j.openpackaging.io.LoadFromZipNG.get(LoadFromZipNG.java:193) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:301) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:245) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:195) at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:178) at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:172) Caused by: java.lang.NullPointerException at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:666) ... 12 more
I tried this as suggested in the Docx4J forum, but to no avail.
This question also does not provide an answer.
Java 6 should have an internal JAXB implementation, but so far I have tried:
- doesn't put jaxb jarb in library
- installing jaxb jar versions: 2.1.7, 2.2.4, also 2.2.6, does not work.
Also, if any help, the same method works, if I run it from void main, it just does not work if it is running from the WebLogic server, so I am convinced that the problem is loading the class.
source share