gpt4 book ai didi

java - 无法在 CentOS 上使用 Tika 解析 Outlook 正文

转载 作者:行者123 更新时间:2023-12-01 12:47:25 29 4
gpt4 key购买 nike

我正在尝试使用 Tika 解析 Outlook 消息的 html 正文。当我在 Windows 计算机上运行以下方法时,它工作正常,并且我得到了电子邮件正文的纯文本表示形式。

private String parseHtml(InputStream stream) throws Exception {
ContentHandler contenthandler = null;
try {
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
contenthandler = new BodyContentHandler();
parser.parse(stream, contenthandler, metadata, new ParseContext());
System.out.println(contenthandler.toString());
}
catch (Exception e) {
e.printStackTrace();
}
return contenthandler != null ? contenthandler.toString() : null;
}

但是,当我在 CentOS VM 和物理服务器上运行相同的代码时,我得到了所有 Outlook 标记。 windows 中发生了一些事情,允许 Tika 检测 centos 上不可用的文档类型。元数据显示,当我调试时:

Windows:Content-Encoding=US-ASCII Generator=Microsoft Word 14(过滤媒体)Content-Type=text/html;字符集=us-asciiLinux:Content-Encoding=US-ASCII Content-Type=text/plain;字符集=US-ASCII

最佳答案

将评论提升为答案...

您缺少一些 Tika jar 或其依赖项

如果您使用命令行 Tika App jar,那么您需要的一切都在其中,并且它独立运行。同样,Tika Server jar 是完全独立的。

对于 OSGi 类型,您需要 Tika Core 和 Tika Bundle,但这应该是它,因为 bundle 包含 Tika 解析器及其依赖项/引用。

否则,如果您从 Java 使用 Tika,则需要 Tika Core、Tika Parsers 以及它们各自的所有依赖项。如果您依赖 tika-coretika-parsers,Maven 可以为您提取依赖项,但您仍然需要确保您的部署方法继承了这些依赖项。

如果您错过了 Tika Parsers jar 和/或其依赖项,那么您仍然拥有 Tika,但没有解析器,因此解析不会返回内容。您可以通过 Tika Config 对象获取可用的解析器,并从中检查您是否拥有所需的所有解析器。

关于java - 无法在 CentOS 上使用 Tika 解析 Outlook 正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24560242/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com