Xpages 可靠地删除MIMEEntity

Xpages 可靠地删除MIMEEntity,xpages,lotus-domino,mime,Xpages,Lotus Domino,Mime,我有一个文档,我必须在其中创建一个新的MIMEEntity(一个字段),其中填充了二进制内容。 我用 创建它。当然,当我对项目已经存在的现有文档重复此操作时,我会在保存文档时得到一个错误,即项目已经存在 MIMEEntity有一个子实体,所以我的方法是先删除然后再删除该项(这不会起作用,也不能解决我的问题) 我最后删除项目的那一行使服务器崩溃。 当我创建一个“新”项目(用新内容替换旧项目)时,我不知道如何完全删除该项目(MIME)以满足Domino的需要 如果您能提供最好的实践,我们将不胜感激。

我有一个文档,我必须在其中创建一个新的MIMEEntity(一个字段),其中填充了二进制内容。 我用

创建它。当然,当我对项目已经存在的现有文档重复此操作时,我会在保存文档时得到一个错误,即项目已经存在

MIMEEntity有一个子实体,所以我的方法是先删除然后再删除该项(这不会起作用,也不能解决我的问题)

我最后删除项目的那一行使服务器崩溃。 当我创建一个“新”项目(用新内容替换旧项目)时,我不知道如何完全删除该项目(MIME)以满足Domino的需要


如果您能提供最好的实践,我们将不胜感激。

我找到了一种方法,可以安全地移除我的物品:

MIMEEntity mimeE = doc.getMIMEEntity(fieldName);
        if (mimeE != null) {
            MIMEEntity mime = mimeE.getFirstChildEntity();
            if (mime != null) {
                mime.remove();
            }
        } else {
            mimeE = doc.createMIMEEntity(fieldName);
        }

        MIMEEntity mime = mimeE.createChildEntity();
不过,我不确定这是否适用于所有情况

if (mimeE != null) {
            MIMEEntity child = mimeE.getFirstChildEntity();
            while(child!=null){
                MIMEEntity ent = child.getNextEntity();
                child.remove();
                child.recycle();
                child = ent;
            }
            mimeE.remove();
            mimeE.recycle();
            doc.removeItem(fieldName);
        }
MIMEEntity mimeE = doc.getMIMEEntity(fieldName);
        if (mimeE != null) {
            MIMEEntity mime = mimeE.getFirstChildEntity();
            if (mime != null) {
                mime.remove();
            }
        } else {
            mimeE = doc.createMIMEEntity(fieldName);
        }

        MIMEEntity mime = mimeE.createChildEntity();