Java Docx4J ConvertOutPDF示例Xalan OutputProperties NullPointerException

Java Docx4J ConvertOutPDF示例Xalan OutputProperties NullPointerException,java,xalan,docx4j,Java,Xalan,Docx4j,尝试使用ConvertOutPDF示例多次转换为PDF时: 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

尝试使用ConvertOutPDF示例多次转换为PDF时:

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
在类路径问题上,这可能是一个随机的或多个不同的xalan,尽管这对于选择第一个找到的LIB来说并不重要

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

现在它看起来好像连接到了热加载,也就是说,如果代码发生了变化,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
原因:java.lang.NullPointerException
位于org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart.getStyleTree(MainDocumentPart.java:172)
位于org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart.getStyleTree(MainDocumentPart.java:164)
位于org.docx4j.convert.out.common.AbstractWmlConversionContext.initializeStyleTree(AbstractWmlConversionContext.java:115)
位于org.docx4j.convert.out.common.AbstractWmlConversionContext。(AbstractWmlConversionContext.java:80)
位于org.docx4j.convert.out.fo.FOConversionContext(FOConversionContext.java:91)
位于org.docx4j.convert.out.fo.AbstractFOExporter.createContext(AbstractFOExporter.java:96)
位于org.docx4j.convert.out.fo.AbstractFOExporter.createContext(AbstractFOExporter.java:45)
位于org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:67)
... 56多
我现在猜问题与servlet容器的热加载有关(因此这是一个边缘案例)。已添加新的stacktrace。。。如果是这样的话,这将是一半的坏。(与生产中一样,没有热加载)(请使用相同的序列化程序版本,谢谢)


适用于我(在Eclipse中运行)。我有serializer-2.7.1。您可以尝试一个新的JAXB(或者使用新的Java,或者在您的目录中安装JAXB参考实现)。我添加了一些调试日志记录。这是关于与Java6兼容的sun库的说明,尽管我使用的是Java7。真的很奇怪..哇,Jason,从来没有注意到这个多线程PDF。。。这个项目开始让我非常害怕……:)那只是为了测试目的。
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