使用sessionAsSigner打开文档时,NotesMIMEEntity为null

时间:2013-05-01 11:39:02

标签: xpages

在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”)为true,即MIME实体字段存在

但是,使用doc.getMIMEEntity(“data”)会返回null,即使它不为空。对于没有作者和读者字段的文档,甚至会出现问题。为什么使用 sessionAsSigner 允许打开文档并获取项目值,但不允许读取MIME实体?

1 个答案:

答案 0 :(得分:1)

要解决此问题,请致电

sessionAsSigner.setConvertMime(false);

在使用sessionAsSigner对象之前。这可以防止在打开文档时将MIME项转换为富文本。否则,NotesDocument.getMIMEEntity将返回null。