Page 1 of 1

docx4j with weblogic Bad [Content_Types].xml

PostPosted: Sun Apr 07, 2013 1:02 pm
by cwcwilson
Hi,all,
how to solve this Exception when I use docx4j with weblogic to open docx file. follow is my code:
Code: Select all
WordprocessingMLPackage templatePackage = WordprocessingMLPackage
                .load(getDocxInputStream());


catch Exception:
Code: Select all
2013-04-03 18:10:29 ERROR ContentTypeManager:698 - java.lang.NullPointerException
    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:213)
            at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(Wordpr ocessingMLPackage.java:184)


so I add jaxb-api.jar and jaxb-impl.jar (2.2.6) in classpath it work ok but it throw a new error :
Code: Select all
ERROR NamespacePrefixMapperUtils:116 - name: com.sun.xml.internal.bind.namespacePrefixMapper value: org.docx4j.jaxb.NamespacePrefixMapperRelationshipsPartSunInternal@692098 .. trying RI.


I use java 1.6 docx4j 2.8.1.
Thanks advance!

Re: docx4j with weblogic Bad [Content_Types].xml

PostPosted: Mon Apr 08, 2013 8:28 am
by jason
The error level log is coming from:

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
                try {
                        // Assume use of Java 6 implementation (ie not RI)
                        m.setProperty("com.sun.xml.internal.bind.namespacePrefixMapper",
                                        new NamespacePrefixMapperRelationshipsPartSunInternal() );
                        log.info("Using NamespacePrefixMapperSunInternal, which is suitable for Java 6");
                        prefixMapperRels = new NamespacePrefixMapperRelationshipsPartSunInternal();
                        return prefixMapperRels;
                } catch (java.lang.NoClassDefFoundError notJava6) {
                        // javax.xml.bind.PropertyException
                        log.error(notJava6.getMessage() + " .. trying RI.");
                        return tryRIforRelationshipsPart(m);
                } catch (javax.xml.bind.PropertyException notJava6) {
                        log.error(notJava6.getMessage() + " .. trying RI.");
                        return tryRIforRelationshipsPart(m);
                }
 
Parsed in 0.015 seconds, using GeSHi 1.0.8.4


Just changed it to WARN level.

This is what you'd expect given that you've added the reference implementation.

Which Java 1.6 are you using, exactly? Because you shouldn't get javax.xml.bind.PropertyException notJava6

Maybe the following helps? docx-java-f6/grails-and-docx4j-v2-6-0-t502.html

Alternatively, see https://forums.oracle.com/forums/thread ... ID=2432938 which suggests it is a security issue.

More if you Google: 'javax.xml.bind.PropertyException weblogic'