使用Apache Chemistry

时间:2018-11-29 16:57:35

标签: java alfresco cmis opencmis apache-chemistry

问候社区!我在Apache Chemistry API上使用alfresco Community Edition 6.0.0。到目前为止,我已经成功地管理了从露天仓库通过它(文件夹和文档文件)创建/获取内容的过程。

现在我想做的是使用Apache Chemistry API 创建一个露天站点(就像我在Alfresco REST API中使用alfresco/api/-default-/public/alfresco/versions/1/sites POST方法一样)。< / p>

那可行吗?按照已经在存储库中创建文件夹的方式执行的操作是:

Folder folder = retrieveSitesFolder(); // this returns the folder object using the node id of the "Sites" node
Map<String, Object> props = new HashMap<String, Object>();
props.put(PropertyIds.OBJECT_TYPE_ID, "F:st:site"); //this is recognized fine
props.put("st:siteVisibility", "PUBLIC");
props.put("st:sitePreset", "something");
props.put("cmis:name", "something"); 
Folder subFolder = folder.createFolder(props);

我从这里开始关注有关我添加的属性的站点模型 https://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/COMMUNITYTAGS/V4.2a/root/projects/repository/config/alfresco/model/siteModel.xml

不幸的是,当我运行这段代码时,出现以下错误:

Exception in thread "main" org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: 10290059 Site something does not exist.

在我看来这很奇怪,因为我希望我的代码执行的操作是创建该站点,无论如何不要搜索它。

更令人奇怪的是,当我通过REST API创建一个名称为“ something”的网站并重新运行代码后,代码成功运行,但是我没有在alfresco/api/-default-/public/alfresco/versions/1/sites中获得任何额外的网站REST API的端点。

请问有人对此有所说明吗?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

正如Gagravarr所说,直到Billerby指出,REST API进行了一些改进之后,该API才支持创建功能站点。

Apache Chemistry不知道站点是什么,但是,正如您所发现的,st:site只是cm:folder的子类型。

尽管这很可能无法通过CMIS进行,但我想指出的是您正在使用“内容”进行网站预设。除非您定义了一个名为“ something”的新网站预设,否则这将行不通。

默认情况下,有一个现成的网站预置,称为“ site-dashboard”,它是“协作站点”预置的ID。

您可以将st:sitePreset更改为“ site-dashboard”,然后查看是否还有其他内容。