Page 1 of 1

Couldn't get Content_Types.xml Word 2013

PostPosted: Thu Jul 03, 2014 2:47 pm
by coolguyxp
Hi,

I'm trying to use docx4j for some templating. I've attatched the word document I use.. whenever I try to load the document using WordprocessingMLPackage.load, I get the following error:
Code: Select all
org.docx4j.openpackaging.exceptions.Docx4JException: Couldn't get [Content_Types].xml from ZipFile
   at org.docx4j.openpackaging.io3.Load3.get(Load3.java:134)
   at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:459)
   at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:376)
   at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:342)
   at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:307)
   at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:174)
   at org.CCInc.Psyc.Report.getTemplate(Report.java:65)
   at org.CCInc.Psyc.Report.access$0(Report.java:64)
   at org.CCInc.Psyc.Report$CitizenshipReport.GenerateReport(Report.java:47)
   at org.CCInc.Psyc.Windows.MySurvey$1.actionPerformed(MySurvey.java:49)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$400(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.docx4j.openpackaging.exceptions.InvalidFormatException: Bad [Content_Types].xml
   at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:705)
   at org.docx4j.openpackaging.io3.Load3.get(Load3.java:132)
   ... 45 more


What could be the cause of this problem? In my project, I reference the docx4j-3.1.0.jar, slf4-simple/slf4-api, and the commons-io jar's. Am I doing something totally wrong?

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting

                WordprocessingMLPackage template = WordprocessingMLPackage.load(new FileInputStream(new File("C:\\Projects\\work\\CitizenshipWaiverTemplate.docx")));
 
Parsed in 0.013 seconds, using GeSHi 1.0.8.4

Re: Couldn't get Content_Types.xml Word 2013

PostPosted: Fri Jul 04, 2014 10:36 am
by jason
Works for me.

I suspect you have a dodgy JAXB implementation. What version of Java are you using? You can try switching to MOXy (see instructions in this forum), or a recent version of the JAXB reference implementation.

Side note: you should add all docx4j's dependencies, or be prepared for ClassNotFound exceptions down the track.

Re: Couldn't get Content_Types.xml Word 2013

PostPosted: Fri Jul 04, 2014 4:35 pm
by coolguyxp
Ah, yes. I determined it was my JDK... I was using JDK 8 and so I installed JDK 7 u60, which works great with JAXB.

That's pretty annoying how the NEWER version doesn't work as well as the older version, but that's java..

Anyway, thanks!

Re: Couldn't get Content_Types.xml Word 2013

PostPosted: Fri Jul 04, 2014 7:20 pm
by jason
OK thanks for the heads up; I'll try Java 8.

Re: Couldn't get Content_Types.xml Word 2013

PostPosted: Fri Jul 04, 2014 8:54 pm
by jason
java.version=1.8.0_05 works for me.

For consistency with earlier versions, I've added https://github.com/plutext/docx4j/commi ... 45d4ca6d6e

so we use com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl and com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl