在 XPage 上,我使用以下代码从文档的 MIME 实体中加载一些文本:
var dcl:NotesDocumentCollection=database.getView("myView").getAllDocumentsByKey("key",true);
var doc:NotesDocument=dcl.getFirstDocument();
var entity:NotesMIMEEntity=doc.getMIMEEntity("data");
var text=entity.getContentAsText();
这工作没有错误。当用 sessionAsSigner.getCurrentDatabase() 替换数据库时,会引发错误,指出MIME 实体为空(测试环境 = 服务器:Notes 8.5.3 | 客户端:Firefox 15)。以下是我从手动调试代码中获得的一些附加信息:
- sessionAsSigner 是一个有效的 NotesSession 对象
- doc 是对我来说可读的有效 NotesDocument,即使用 getItemValue 方法可以正常工作
- doc.hasItem("data") 为真,即MIME实体字段存在
但是,使用 doc.getMIMEEntity("data") 会返回 null,即使它不为空。甚至没有作者和读者字段的文档也会出现此问题。为什么使用sessionAsSigner允许打开文档并获取项目值,但不允许读取 MIME 实体?