ColdFusion 在使用 Java MAPIMessage 对象时返回错误

问题描述 投票:0回答:1

我在 ColdFusion [2023] 中有一个流程,可以获取 .msg 文件(Microsoft 电子邮件)的内容,以便我可以使用所述内容创建该消息的 PDF 版本。这个过程在过去两年多里一直运行良好。我使用了 stackoverflow 中以下接受的答案中的代码:ColdFusion:从 .msg 文件中提取信息

截至昨天(据我们所知,因为系统的这一部分并不是每天使用的),该过程已停止工作,因为它出错了。我正在使用 Java POI 对象来访问 MAPIMessage 对象。这条线...

MAPIMessage = createObject("java", "org.apache.poi.hsmf.MAPIMessage");

..产生以下错误:

org.apache.poi.POIReadOnlyDocument not found by poi [93]

有人对可能发生的情况或如何调查该问题有任何想法吗?我可以通过 POI 对象访问其他对象。例如,我能够执行

<cfset MAPIMessage = createObject("java", "org.apache.poi.POIDocument")>

在查看

cfdump
时会返回方法列表。

我们的 CF 管理员不在,但一旦有空,我会与他联系,看看 CF 服务器最近是否有更新。此问题发生在我们的开发、测试和生产服务器上。我们在夏天升级到了 CF2023,最终用户告诉我,他们最近使用了应用程序的这一部分,尽管我并不完全排除升级是罪魁祸首。

我愿意以不同的方式做到这一点,但这需要通过 ColdFusion。我的想法是应该有一种方法使用 CFPDF / DDX 将 .msg 转换为 PDF,但我没有看到任何有关如何执行此操作的文档。

java apache-poi cfml
1个回答
0
投票

事实证明,[servername]\lib 文件夹中缺少支持的

poi jar
文件。 jar 文件是:

poi-3.17
poi-contrib
poi-ooxml-3.17 
poi-ooxml-schemas-3.17 
poi-scratchpad 
poi-scratchpad-3.17

我只是确定这些文件是否是 2018 年初始安装的一部分,而不包含在 2023 年中;或者如果我们在 2018 年单独安装它们并且忘记了我们做了什么。不管怎样,这似乎已经解决了问题。

请注意,可能有更新版本的 poi 可用。

© www.soinside.com 2019 - 2024. All rights reserved.