英文:
Apache-tika 1.23 fails .eml file as an attachment to email throws NoClassDefFoundError
问题
java.lang.NoClassDefFoundError: org/apache/james/mime4j/stream/MimeConfig$Builder
at org.apache.tika.parser.mail.RFC822Parser.parse(RFC822Parser.java:74)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:188)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:143)
at org.apache.tika.Tika.parseToString(Tika.java:527)
at org.apache.tika.Tika.parseToString(Tika.java:602)
尝试使用 Apache Tika 解析 .eml 文件的正文内容时,抛出 NoClassDefFoundError 错误。
AutoDetectParser 识别它要使用 RFC822Parser,然而,在 RFC822Parser 的解析方法中,它尝试构建 MimeConfig:
MimeConfig config = new MimeConfig.Builder()
.setMaxLineLen(100000)
.setMaxHeaderLen(100000)
.build();
无法构建该实例并中断。
英文:
java.lang.NoClassDefFoundError: org/apache/james/mime4j/stream/MimeConfig$Builder
at org.apache.tika.parser.mail.RFC822Parser.parse(RFC822Parser.java:74)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:188)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:143)
at org.apache.tika.Tika.parseToString(Tika.java:527)
at org.apache.tika.Tika.parseToString(Tika.java:602)
When trying to parse the body content from .eml file using Apache Tika throws NoClassDefFoundError.
AutoDetectParser identifies it as RFC822Parser to be used, however, in the parse method of RFC822Parser it tries to build the MimeConfig
MimeConfig config = new MimeConfig.Builder()
.setMaxLineLen(100000)
.setMaxHeaderLen(100000)
.build();
Unable to construct the instance and breaks.
答案1
得分: 0
实际上,我找到了问题所在,即为什么 RFC822Parser 无法创建 MimeConfig 实例,因为两个 Apache 库之间存在冲突,即 Apache Tika 和 Apache James Jdkim 库。两者都有相同的类名 MimeConfig,但行为不同,加载等效类 Runtime 导致混乱。
英文:
Actually, I figured the problem as to why RFC822Parser failing to create an instance of MimeConfig because there was a conflict between two Apache libraries
-> Apache Tika and Apache James Jdkim library.
Both have the same class name MimeConfig but different behavior and loading equivalent class Runtime go haywire
专注分享java语言的经验与见解,让所有开发者获益!
评论