版本控制文件错误,使用带有apache化学和标准CMIS的java中的Magnolia

时间:2014-02-26 10:16:40

标签: java eclipse cmis magnolia

我尝试将文件作为远程Magnolia存储库中的主要版本。为此,我建议在Eclipse EE IDE上使用java,使用org.apache.chemistry.opencmis。*和REST架构的库。 我用来制作文档的代码如下:

Folder parent = rute.get(rute.size() - 1);

Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
properties.put(PropertyIds.NAME, name);

// content
byte[] content = "".getBytes();
InputStream stream = new ByteArrayInputStream(content);
ContentStream contentStream = new ContentStreamImpl
        (nombre, BigInteger.valueOf(content.length), "text/plain", stream);

// create a major version
try {
    parent.createDocument(properties, contentStream, VersioningState.MAJOR);
} catch (CmisConstraintException e) {
    e.printStackTrace();
}

它抛出异常“cmis:document不支持版本控制”。相同的代码,但连接到Alfresco而不是Magnolia工作完美,所以我认为是Magnolia配置的问题,但我找不到问题。 Sombody可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我的猜测是你没有cmis:在Magnolia中注册的文档类型。 Magnolia中的所有内容都是mgnl:content类型的开箱即用。由于Magnolia中的版本与Alfresco的版本不同,我甚至不会尝试以这种方式制作版本。实际上,更简单的是,如果您使用的是最新版本的Magnolia,您可以通过REST调用VersionCommand,并告诉Magnolia版本需要直接版本化的任何页面。