我正在使用Apache Chemistry和CXF在JAVA中开发通用的CMIS 1.1客户端应用程序。

目前,我在这里描述的CMIS保持功能方面很挣扎:
http://docs.oasis-open.org/cmis/CMIS/v1.1/os/CMIS-v1.1-os.html#x1-13200016

当我在InMemory存储库中创建ID为“ cmis:rm_hold”的辅助类型并将此类型添加到属性(cmis:secondaryObjectTypeIds)到任何cmis:document时,仍可以删除该文件。

也许这不是正确的方法。

有人可以指出正确的方向来实施此功能吗?

我用来添加属性的代码:

CmisPropertiesType properties = new CmisPropertiesType();

CmisPropertyId propertyId = new CmisPropertyId();
propertyId.setPropertyDefinitionId("cmis:secondaryObjectTypeIds");
propertyId.getValue().add("cmis:rm_hold");
properties.getProperty().add(propertyId);

objectServicePort.updateProperties(
    cmisContext.getRepositoryId(),
    new Holder<String>(id.getDocId()), null, properties, null);


谢谢,
米雷茨

最佳答案

抱歉,InMemory存储库不支持保留和保留。默认情况下,InMemory服务器不会公开保留和保留规范中的预定义类型。如果之后创建此类,服务器将识别该类型和属性,但将不知道与诸如hold之类的属性相关的语义。实际上,您不应该在运行时尝试添加预定义的类型(以cmis:开头的类型),因为它们的存在指示是否支持该功能。

为了测试保留和保留InMemory服务器不是适当的服务器。 InMemory服务器仅限于基本功能。

希望这可以帮助...

10-07 18:12