Привет. Я пытаюсь прочитать данные из одного файла Docx, используя Docx4j, поэтому я могу вставить их в другой файл. Мой код выглядит следующим образом:
public void getTextFromOtherFile() throws Docx4JException, JAXBException {
File doc = new File("D:\\helloWorld.docx");
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(doc);
MainDocumentPart mainDocumentPart = wordMLPackage.getMainDocumentPart();
System.out.println(mainDocumentPart.getXML());
}
Код работает нормально. Но как только я вставляю следующую строку в конец вышеуказанного метода, метод начал генерировать исключение:
List<Object> jAXBNodesViaXPath = mainDocumentPart.getJAXBNodesViaXPath("//w:t", true);
Исключение, с которым я сталкиваюсь, следующее:
SEVERE: Servlet.service() for servlet [jsp] in context with path [/osses] threw exception [javax.servlet.ServletException: java.lang.NoSuchMethodError: org.apache.xml.utils.DefaultErrorHandler.<init>(Z)V] with root cause
java.lang.NoSuchMethodError: org.apache.xml.utils.DefaultErrorHandler. (Z) V
в org.docx4j.org.apache.xalan.transformer.TransformerIdentityImpl. (TransformerIdentityImpl.java:1459)
в org.docx4j.org.apache.xalan.transformer.TransformerIdentityImpl. (TransformerIdentityImpl.java:96)
в org.docx4j.utils.XmlSerializerUtil.serialize (XmlSerializerUtil.java:18)
в org.docx4j.XmlUtils.w3CDomNodeToString (XmlUtils.java:833)
в org.docx4j.XmlUtils.xpath (XmlUtils.java:1206)
в org.docx4j.XmlUtils.xpath (XmlUtils.java:1200)
в org.docx4j.XmlUtils.getJAXBAssociationsForXPath (XmlUtils.java:1191)
в org.docx4j.XmlUtils.getJAXBNodesViaXPath (XmlUtils.java:1133)
в org.docx4j.openpackaging.parts.JaxbXmlPartXPathAware.getJAXBNodesViaXPath (JaxbXmlPartXPathAware.java:190)
в Business.SelectionBean.getTextFromOtherFile (SelectionBean.java:1087)
на org.apache.jsp.test_jsp._jspService (test_jsp.java:95)
в org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:70)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:731)
в org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:439)
в org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:395)
в org.apache.jasper.servlet.JspServlet.service (JspServlet.java:339)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:731)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:303)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208)
в org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:241)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208)
на Business.NoCacheFilter.doFilter (NoCacheFilter.java:36)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:241)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208)
в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:219)
в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:110)
в org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:506)
в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:169)
в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:103)
в org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:962)
в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:116)
в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:445)
в org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1115)
в org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:637)
в org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run (JIoEndpoint.java:318)
в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145)
в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:615)
в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61)
at java.lang.Thread.run (Thread.java:745)
Файл моего слова содержит две строки:
Здравствуйте, меня зовут abcd.
Я люблю свою работу.Я застрял на этом этапе в предыдущие 7 дней, но не смог решить эту проблему. Я также включил различные jar-файлы (Xalan, xml-apis-1.3.04, serializer-2.7.2), но не повезло. Я использую docx4j-6.0.1.jar для своей работы.
Может кто-нибудь, пожалуйста, направьте меня к этой проблеме. Заранее спасибо.