我们正在使用Tika 1.1从XLSM文件中提取内容。我们有两个服务器实例。在其中一台服务器上正确提取文件内容。但在另一台服务器上我得到同一个文件的zip炸弹异常。我们在两个实例中使用相同的tika独立罐。但我无法确定问题所在。
不确定SAX配置是否在运行时产生问题(我不熟悉SAX)。我该如何调试此问题?
引起:org.apache.tika.exception.TikaException:检测到拉链炸弹! 在org.apache.tika.sax.SecureContentHandler.throwIfCauseOf(SecureContentHandler.java:192) 在org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:123) 在org.apache.tika.Tika.parseToString(Tika.java:380) 在com.ptc.search.solr.contentReader.contentExtraction.TikaExtractor.getContent(TikaExtractor.java:36) ......还有45个 引起:org.apache.tika.sax.SecureContentHandler $ SecureSAXException:疑似拉链炸弹:878级XML元素嵌套 在org.apache.tika.sax.SecureContentHandler.startElement(SecureContentHandler.java:234) 在org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) 在org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) 在org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) 在org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) 在org.apache.tika.sax.SafeContentHandler.startElement(SafeContentHandler.java:264) 在org.apache.tika.sax.XHTMLContentHandler.startElement(XHTMLContentHandler.java:244) 在org.apache.tika.sax.XHTMLContentHandler.startElement(XHTMLContentHandler.java:274) 在org.apache.tika.sax.XHTMLContentHandler.element(XHTMLContentHandler.java:313) 在org.apache.tika.parser.microsoft.ooxml.XSSFExcelExtractorDecorator.extractHeaderFooter(XSSFExcelExtractorDecorator.java:145) 在org.apache.tika.parser.microsoft.ooxml.XSSFExcelExtractorDecorator.buildXHTML(XSSFExcelExtractorDecorator.java:129) 在org.apache.tika.parser.microsoft.ooxml.AbstractOOXMLExtractor.getXHTML(AbstractOOXMLExtractor.java:104) 在org.apache.tika.parser.microsoft.ooxml.OOXMLExtractorFactory.parse(OOXMLExtractorFactory.java:110) 在org.apache.tika.parser.microsoft.ooxml.OOXMLParser.parse(OOXMLParser.java:82) 在org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242) 在org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242) 在org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120) ......还有47个
答案 0 :(得分:0)
调试tika代码后,我意识到我在WriteOutContentHandler上设置了maxStringLength,并且在达到限制后代码抛出了zip炸弹错误。正确的错误消息可能会更快帮助。无论如何,感谢大家的投入。我们一定会计划搬到最新版本。
我们是否应该在Jira中创建一个缺陷以抛出正确的错误消息?
答案 1 :(得分:0)
我解决了安装问题
emerge app-office/unoconv
并执行
$ unoconv -fpdf file.xlsm
它将在文件的同一目录中创建一个.pdf文件,然后您可以将其发送给Tika。
我的服务器是Gentoo,然后适应你的。