在嘗試使用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
https://github.com/plutext/docx4j/blob/master/src/test/java/org/docx4j/convert /out/pdf/PdfMultipleThreads.java適用於我(在Eclipse中運行)。 – JasonPlutext
我有序列化器2.7.1。您可以嘗試更新的JAXB(通過使用更新的Java,或者通過在您的背書目錄中安裝JAXB參考實現)。 – JasonPlutext
嘿傑森,謝謝你的幫助。我添加了一些調試日誌記錄。它講述了一個與Java6兼容的sun庫,但我使用的是Java7。真的很奇怪.. – Radagast