【发布时间】:2015-07-08 21:51:18
【问题描述】:
我正在使用以下代码使用 CMIS API 在我的文档服务上创建一个文件:
zipMapFile.put(PropertyIds.OBJECT_TYPE_ID, "sap:versioned");
zipMapFile.put(PropertyIds.NAME, "g" + g.getId() + ".zip");
Document versionedDocument = openCmisSession.getRootFolder().createDocument(zipMapFile, contentStream, VersioningState.MAJOR);
newZipFileId = versionedDocument.checkOut();
...
上面的代码正在运行,并且文件正在正确生成。当我运行以下代码时:
cmisSession.getObject(newZipFileId.getId());
我得到了我之前创建的文件,没有错误。
但是,当我尝试为此文件上传新版本时遇到问题。
为此,我使用以下代码:
oldZipFileId = newZipFileId;
Document pwc = (Document) cmisSession.getObject(oldZipFileId);
pwc.setContentStream(contentStream, true);
newZipFileId = pwc.checkIn(false, null, null, null);
每当我这样做时,我都可以毫无问题地访问较新的版本,运行以下代码:
cmisSession.getObject(newZipFileId.getId());
但是,我不能再访问旧版本了!如果我尝试运行:
cmisSession.getObject(oldZipFileId);
我得到一个 CmisObjectNotFoundException
我失去对旧版本的访问权限的那一刻正是方法 pwc.checkIn(false, null, null, null); 执行的时候。在此调用之后,尝试获取 oldZipId 引用的对象会给我一个 CmisObjectNotFoundException。
我正在使用 MongoDB。
感谢任何帮助!谢谢!
【问题讨论】:
标签: java versioning cmis