2014-03-25 34 views
0

在嘗試使用ConvertOutPDF樣品轉換爲PDF多次:Docx4J ConvertOutPDF樣品的Xalan OutputProperties NullPointerException異常

try { 
ConvertOutPDF.process(filelink, target_flavour_filelink); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

其中過程看起來基本上酷似Jason的著名主要是:

/** 
* Here the inputfilepath is obligatory. This also enforces that we don't have to check 
* for the inputfilepath being null. 
* Storing to a freely chosen OUT_FontConverted.xhtml+xml makes is less optimal for 
* production usage if we want to keep individual pdfs for each file. Otherwise a 
* standard export would only work if there are no semaphore issues, i.e. not many 
* processes writing to this one identical file. 
* 
* @param inputfilepath 
* @throws Exception 
*/ 
public static void process(String inputfilepath, String outputfilepath) throws Exception { 
    AbstractSample.inputfilepath = inputfilepath; 
    // Font regex (optional) 
    // Set regex if you want to restrict to some defined subset of fonts 
    // Here we have to do this before calling createContent, 
    // since that discovers fonts 
    String regex = null; 
    // Windows: 
    // String 
    // regex=".*(calibri|cour|arial|times|comic|georgia|impact|LSANS|pala|tahoma|trebuc|verdana|symbol|webdings|wingding).*"; 
    // Mac 
    // String 
    // regex=".*(Courier New|Arial|Times New Roman|Comic Sans|Georgia|Impact|Lucida Console|Lucida Sans Unicode|Palatino Linotype|Tahoma|Trebuchet|Verdana|Symbol|Webdings|Wingdings|MS Sans Serif|MS Serif).*"; 
    PhysicalFonts.setRegex(regex); 

    // Document loading (required) 
    WordprocessingMLPackage wordMLPackage; 
    if (inputfilepath == null) { 
     // Create a docx 
     System.out.println("No input path passed, creating dummy document"); 
     wordMLPackage = WordprocessingMLPackage.createPackage(); 
     //TODO fix this -- ONLY RELEVANT FOR standalone use, that is using main() above. 
     //SampleDocument.createContent(wordMLPackage.getMainDocumentPart()); 
    } else { 
     // Load .docx or Flat OPC .xml 
     System.out.println("Loading file from " + inputfilepath); 
     wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath)); 
    } 

    // Set up font mapper (optional) 
    Mapper fontMapper = new IdentityPlusMapper(); 
    wordMLPackage.setFontMapper(fontMapper); 
    // .. example of mapping missing font Algerian to installed font Comic Sans MS 
    PhysicalFont font 
      = PhysicalFonts.getPhysicalFonts().get("Comic Sans MS"); 
    fontMapper.getFontMappings().put("Algerian", font); 


    // FO exporter setup (required) 
    // .. the FOSettings object 
    FOSettings foSettings = Docx4J.createFOSettings(); 
    if (saveFO) { 
     foSettings.setFoDumpFile(new java.io.File(inputfilepath + ".fo")); 
    } 
    foSettings.setWmlPackage(wordMLPackage); 
    // Document format: 
    // The default implementation of the FORenderer that uses Apache Fop will output 
    // a PDF document if nothing is passed via 
    // foSettings.setApacheFopMime(apacheFopMime) 
    // apacheFopMime can be any of the output formats defined in org.apache.fop.apps.MimeConstants or 
    // FOSettings.INTERNAL_FO_MIME if you want the fo document as the result. 
    //foSettings.setApacheFopMime(FOSettings.INTERNAL_FO_MIME); 

    // exporter writes to an OutputStream.  
    OutputStream os = new java.io.FileOutputStream(outputfilepath); 


    //Don't care what type of exporter you use 
    Docx4J.toFO(foSettings, os, Docx4J.FLAG_NONE); 
    //Prefer the exporter, that uses a xsl transformation 
    //Docx4J.toFO(foSettings, os, Docx4J.FLAG_EXPORT_PREFER_XSL); 
    //Prefer the exporter, that doesn't use a xsl transformation (= uses a visitor) 
    //Docx4J.toFO(foSettings, os, Docx4J.FLAG_EXPORT_PREFER_NONXSL); 

    System.out.println("Saved to: " + outputfilepath); 
} 

以下錯誤發生:

795336 DEBUG o.d.m.s.StyleTree   - Adding 'Standard' to paragraph tree 
795336 DEBUG o.d.m.s.StyleTree   - Standard 
795336 DEBUG o.d.m.s.StyleTree   - ..based on DocDefaults 
795336 DEBUG o.d.m.s.StyleTree   - Absatz-Standardschriftart 
795336 DEBUG o.d.m.s.StyleTree   - Style Absatz-Standardschriftart is not based on anything. 
795337 DEBUG o.d.c.o.c.AbstractConversionContext - Create conversion context, 6ms 
795337 DEBUG o.d.j.NamespacePrefixMapperUtils - attempting to setProperty: com.sun.xml.INTERNAL.bind.namespacePrefixMapper 
    ... 
795425 DEBUG o.d.j.NamespacePrefixMapperUtils - attempting to setProperty: com.sun.xml.INTERNAL.bind.namespacePrefixMapper 
795428 ERROR o.d.c.o.c.AbstractConversionContext - Exception exporting package 
java.lang.NullPointerException: null 
    at org.apache.xml.serializer.OutputPropertiesFactory.getDefaultMethodProperties(OutputPropertiesFactory.java:260) ~[serializer-2.7.1.jar:2.7.1] 
    at org.apache.xalan.templates.OutputProperties.<init>(OutputProperties.java:83) ~[xalan-2.7.1.jar:na] 
    at org.apache.xalan.transformer.TransformerIdentityImpl.<init>(TransformerIdentityImpl.java:88) ~[xalan-2.7.1.jar:na] 
    at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:823) ~[xalan-2.7.1.jar:na] 
    at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.createTransformer(JAXBContextImpl.java:709) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.getIdentityTransformer(XMLSerializer.java:802) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.writeDom(XMLSerializer.java:794) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayReferenceNodeProperty.serializeListBody(ArrayReferenceNodeProperty.java:101) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:144) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:341) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:685) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:54) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:157) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:144) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:341) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:582) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:323) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:483) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:308) ~[na:1.7.0_03] 
    at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:236) ~[na:1.7.0_03] 
    at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:130) ~[na:1.7.0_03] 
    at org.docx4j.XmlUtils.marshaltoW3CDomDocument(XmlUtils.java:671) ~[docx4j-nightly-20140123.jar:na] 
    at org.docx4j.convert.out.common.WmlXsltExporterDelegate.getSourceDocument(WmlXsltExporterDelegate.java:48) ~[docx4j-nightly-20140123.jar:na] 
    at org.docx4j.convert.out.common.AbstractXsltExporterDelegate.process(AbstractXsltExporterDelegate.java:56) ~[docx4j-nightly-20140123.jar:na] 
    at org.docx4j.convert.out.common.AbstractWmlExporter.process(AbstractWmlExporter.java:63) ~[docx4j-nightly-20140123.jar:na] 
    at org.docx4j.convert.out.common.AbstractWmlExporter.process(AbstractWmlExporter.java:32) ~[docx4j-nightly-20140123.jar:na] 
    at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:71) ~[docx4j-nightly-20140123.jar:na] 
    at org.docx4j.Docx4J.toFO(Docx4J.java:467) [docx4j-nightly-20140123.jar:na] 
    at docx4j_library.ConvertOutPDF.process(ConvertOutPDF.java:170) [ConvertOutPDF.class:na] 
    at converter.Converter.docx2pdf(Converter.java:239) [Converter.class:na] 
    at aufgaben_db.Global.convertFile(Global.java:2711) [Global.class:na] 
    at db.UnixComandosThread.d_o(UnixComandosThread.java:180) [UnixComandosThread.class:na] 
    at db.UnixComandosThread.d_o(UnixComandosThread.java:101) [UnixComandosThread.class:na] 
    at org.apache.jsp.action_upload_jsp._jspService(action_upload_jsp.java:326) [aufgaben_db_v15/:na] 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [jasper.jar:6.0.35] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na] 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) [jasper.jar:6.0.35] 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) [jasper.jar:6.0.35] 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) [jasper.jar:6.0.35] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) [catalina.jar:6.0.35] 
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968) [jasper.jar:6.0.35] 
    at org.apache.jsp.action_inc_jsp._jspService(action_inc_jsp.java:290) [aufgaben_db_v15/:na] 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [jasper.jar:6.0.35] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na] 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) [jasper.jar:6.0.35] 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) [jasper.jar:6.0.35] 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) [jasper.jar:6.0.35] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) [catalina.jar:6.0.35] 
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968) [jasper.jar:6.0.35] 
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:213) [aufgaben_db_v15/:na] 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [jasper.jar:6.0.35] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na] 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) [jasper.jar:6.0.35] 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) [jasper.jar:6.0.35] 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) [jasper.jar:6.0.35] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [catalina.jar:6.0.35] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [catalina.jar:6.0.35] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:6.0.35] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) [catalina.jar:6.0.35] 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) [tomcat-coyote.jar:6.0.35] 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) [tomcat-coyote.jar:6.0.35] 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) [tomcat-coyote.jar:6.0.35] 
    at java.lang.Thread.run(Thread.java:722) [na:1.7.0_03] 

org.docx4j.openpackaging.exceptions.Docx4JException: Exception exporting package 
    at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:79) 
    at org.docx4j.Docx4J.toFO(Docx4J.java:467) 
    at docx4j_library.ConvertOutPDF.process(ConvertOutPDF.java:170) 
    at converter.Converter.docx2pdf(Converter.java:239) 
    at aufgaben_db.Global.convertFile(Global.java:2711) 
    at db.UnixComandosThread.d_o(UnixComandosThread.java:180) 
    at db.UnixComandosThread.d_o(UnixComandosThread.java:101) 
    at org.apache.jsp.action_upload_jsp._jspService(action_upload_jsp.java:326) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) 
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968) 
    at org.apache.jsp.action_inc_jsp._jspService(action_inc_jsp.java:290) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) 
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968) 
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:213) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Thread.java:722) 

Caused by: java.lang.NullPointerException 
    at org.apache.xml.serializer.OutputPropertiesFactory.getDefaultMethodProperties(OutputPropertiesFactory.java:260) 
    at org.apache.xalan.templates.OutputProperties.<init>(OutputProperties.java:83) 
    at org.apache.xalan.transformer.TransformerIdentityImpl.<init>(TransformerIdentityImpl.java:88) 
    at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:823) 
    at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.createTransformer(JAXBContextImpl.java:709) 
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.getIdentityTransformer(XMLSerializer.java:802) 
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.writeDom(XMLSerializer.java:794) 
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayReferenceNodeProperty.serializeListBody(ArrayReferenceNodeProperty.java:101) 
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:144) 
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:341) 
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:685) 
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:54) 
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:157) 
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:144) 
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:341) 
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:582) 
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:323) 
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:483) 
    at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:308) 
    at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:236) 
    at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:130) 
    at org.docx4j.XmlUtils.marshaltoW3CDomDocument(XmlUtils.java:671) 
    at org.docx4j.convert.out.common.WmlXsltExporterDelegate.getSourceDocument(WmlXsltExporterDelegate.java:48) 
    at org.docx4j.convert.out.common.AbstractXsltExporterDelegate.process(AbstractXsltExporterDelegate.java:56) 
    at org.docx4j.convert.out.common.AbstractWmlExporter.process(AbstractWmlExporter.java:63) 
    at org.docx4j.convert.out.common.AbstractWmlExporter.process(AbstractWmlExporter.java:32) 
    at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:71) 
    ... 51 more 

在我的類路徑一些庫,請不要難過,這是一個即將到來的(希望不是我的直接動力)開源項目,必須處理許多fileformats教師:(短名單)

antlr-2.7.7.jar 
antlr-runtime-3.3.jar 
avalon-framework-api-4.3.1.jar 
avalon-framework-impl-4.3.1.jar 
batik-all-1.7.jar 
docx4j-nightly-20140123.jar 
dom4j-1.6.1.jar 
fop.jar 
itext-2.1.7.jar 
jaxb-svg11-1.0.2.jar 
jaxb-xmldsig-core-1.0.0.jar 
jaxb-xslfo-1.0.1.jar 
jaxen-1.1.6.jar 
jdom-2.0.5.jar 
xalan-2.7.1.jar 
xdocreport-1.0.4.jar 
xercesImpl.jar 
xml-apis.jar 
xml-apis-1.3.04.jar 
xml-apis-ext-1.3.04.jar 
xmlbeans-2.3.0.jar 
xmlgraphics-commons-svn-trunk.jar 

這可能是一個隨機的或在類路徑問題上有多個不同的xalan,儘管這對於選擇第一個被發現的相等的庫是不重要的。

Jason告訴我,docx4j已經使用模板,所以它應該能夠處理多次轉換。

也許是因爲文件爲空?如果是..所以我有較深潛入調試轉換...

SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder] 
1144 INFO o.d.j.Context    - java.vendor=Oracle Corporation 
1152 INFO o.d.j.Context    - java.version=1.7.0_03 
3080 INFO o.d.j.NamespacePrefixMapperUtils - Using NamespacePrefixMapperSunInternal, which is suitable for Java 6 
3081 INFO o.d.j.Context    - MOXy JAXB implementation intended.. 
16930 INFO o.d.j.Context    - Not using MOXy. 
18282 DEBUG o.d.j.Context    - .. other contexts loaded .. 
18316 DEBUG o.d.o.c.ContentTypeManager - unmarshalling org.docx4j.openpackaging.contenttype.ContentTypeManager 
18429 DEBUG o.d.XmlUtils    - Oracle Corporation 
18429 DEBUG o.d.XmlUtils    - 1.7.0_03 
18433 WARN o.d.u.ResourceUtils  - Couldn't get resource: docx4j.properties 
18443 WARN o.d.Docx4jProperties  - Couldn't find/read docx4j.properties; docx4j.properties not found via classloader. 
18444 INFO o.d.XmlUtils    - Using com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl 
18444 INFO o.d.XmlUtils    - Using com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl 
18444 DEBUG o.d.XmlUtils 

更新:這是我想通爲止: (重新)啓動Tomcat,改建工程。 現在重複轉換。不起作用。以上錯誤。 重新啓動Tomcat - >轉換再次運行一次。

我會給Jason的PdfMultipleThreads.CreatePDF一個嘗試。

現在看起來好像它已連接到HOTLOADING,即如果代碼改變並且被Tomcat重新編譯和加載。

org.docx4j.openpackaging.exceptions.Docx4JException: Exception exporting package 
at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:79) 
at org.docx4j.Docx4J.toFO(Docx4J.java:467) 
at docx4j_library.ConvertOutPDF.process(ConvertOutPDF.java:170) 
at converter.Converter.docx2pdf(Converter.java:239) 
at aufgaben_db.Global.convertFile(Global.java:2713) 
at db.UnixComandosThread.d_o(UnixComandosThread.java:185) 
at aufgaben_db.ContentToImage.generateImage(ContentToImage.java:84) 
at aufgaben_db.Sheetdraft.extractExercisesFromDOCX(Sheetdraft.java:1827) 
at aufgaben_db.Sheetdraft.extractExercisesNativeFormat(Sheetdraft.java:727) 
at aufgaben_db.Sheetdraft.extractExercisesNativeFormat(Sheetdraft.java:685) 
at aufgaben_db.Aufgaben_DB.processUploadedSheetdraft(Aufgaben_DB.java:171) 
at aufgaben_db.Aufgaben_DB.processUploadedSheetdraft(Aufgaben_DB.java:67) 
at org.apache.jsp.action_upload_jsp._jspService(action_upload_jsp.java:247) 
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) 
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) 
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968) 
at org.apache.jsp.action_inc_jsp._jspService(action_inc_jsp.java:290) 
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) 
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) 
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968) 
at org.apache.jsp.index_jsp._jspService(index_jsp.java:213) 
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
at java.lang.Thread.run(Thread.java:722) 

我記得發生這種情況,如果沒有記錄器配置/設置,也。

Caused by: java.lang.NullPointerException 
at org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart.getStyleTree(MainDocumentPart.java:172) 
at org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart.getStyleTree(MainDocumentPart.java:164) 
at org.docx4j.convert.out.common.AbstractWmlConversionContext.initializeStyleTree(AbstractWmlConversionContext.java:115) 
at org.docx4j.convert.out.common.AbstractWmlConversionContext.<init>(AbstractWmlConversionContext.java:80) 
at org.docx4j.convert.out.fo.FOConversionContext.<init>(FOConversionContext.java:91) 
at org.docx4j.convert.out.fo.AbstractFOExporter.createContext(AbstractFOExporter.java:96) 
at org.docx4j.convert.out.fo.AbstractFOExporter.createContext(AbstractFOExporter.java:45) 
at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:67) 
... 56 more 
+0

https://github.com/plutext/docx4j/blob/master/src/test/java/org/docx4j/convert /out/pdf/PdfMultipleThreads.java適用於我(在Eclipse中運行)。 – JasonPlutext

+0

我有序列化器2.7.1。您可以嘗試更新的JAXB(通過使用更新的Java,或者通過在您的背書目錄中安裝JAXB參考實現)。 – JasonPlutext

+0

嘿傑森,謝謝你的幫助。我添加了一些調試日誌記錄。它講述了一個與Java6兼容的sun庫,但我使用的是Java7。真的很奇怪.. – Radagast

回答

0

我現在想這個問題是關係到servlet容器的hotloading(所以這是一個邊緣的情況下)。已經添加了一個新的堆棧跟蹤...如果是這樣,那麼這將是一半的壞。 (因爲在生產中沒有熱載入)(具有相同的串行器版本,謝謝)