蒂卡拉链炸弹异常

时间:2014-02-19 13:47:18

标签: java solr sax apache-tika

我们正在使用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个

2 个答案:

答案 0 :(得分:0)

调试tika代码后,我意识到我在WriteOutContentHandler上设置了maxStringLength,并且在达到限制后代码抛出了zip炸弹错误。正确的错误消息可能会更快帮助。无论如何,感谢大家的投入。我们一定会计划搬到最新版本。

我们是否应该在Jira中创建一个缺陷以抛出正确的错误消息?

答案 1 :(得分:0)

我解决了安装问题

emerge app-office/unoconv

并执行

$ unoconv -fpdf file.xlsm

它将在文件的同一目录中创建一个.pdf文件,然后您可以将其发送给Tika。

我的服务器是Gentoo,然后适应你的。