在Alfresco,我正在尝试使用以下代码检索以前版本的文件:
VersionHistory history = this.versionService
.getVersionHistory(nodeRef);
Version version = history.getVersion(previousDeployedVersion);
NodeRef previousNode = version.getFrozenStateNodeRef();
它一直工作,直到我到1.0版本,然后我得到空白内容。 这是正常的行为吗? 我也尝试了getRootVersion()但得到了相同的结果。
当我查看文件的详细信息页面,版本历史记录时,我可以查看"的内容 不同的版本。版本1.0也显示空白。
如果有人可以对此有所了解,我会感激不尽。 感谢
在通过虚拟webdav驱动器添加到Alfresco的文件中可以看到此行为。我发现当我添加一个文件时 Alfresco Explorer使用"添加内容"接口,一切正常,我可以正确读取版本1.0。 谁能提出造成这种差异的原因?感谢
答案 0 :(得分:1)
如果您检查CMIS代码以获取所有版本,那么它会有所不同。 它还将当前版本添加到列表中并进行一些检查。
public List<NodeRef> getAllVersions(String objectId) throws CMISConstraintException, CMISVersioningException,
CMISObjectNotFoundException, CMISInvalidArgumentException, CMISPermissionDeniedException
{
NodeRef nodeRef = getVersionSeries(objectId, NodeRef.class, true);
List<NodeRef> objects = new LinkedList<NodeRef>();
NodeRef pwc = checkOutCheckInService.getWorkingCopy(nodeRef);
if (pwc != null)
{
objects.add(pwc);
}
VersionHistory versionHistory = versionService.getVersionHistory(nodeRef);
if (versionHistory != null)
{
Version current = versionService.getCurrentVersion(nodeRef);
while (current != null)
{
objects.add(current.getFrozenStateNodeRef());
current = versionHistory.getPredecessor(current);
}
}
else if (pwc == null)
{
objects.add(nodeRef);
}
return objects;
}