使用 Apache Chemistry 在 Alfresco 中创建站点

Create Site in Alfresco using the Apache Chemistry

向社区问好!我在 Apache Chemistry API 中使用 alfresco Community Edition 6.0.0。到目前为止,我已经通过它成功管理了露天存储库中的 create/fetch 内容(文件夹和文档文件)。

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

这样可行吗??按照我已经在存储库中创建文件夹的方式,我所做的是:

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" 的站点并重新 运行 代码时,代码 运行 成功,但我没有在 REST API.

alfresco/api/-default-/public/alfresco/versions/1/sites 端点中获得任何额外站点

有人能解释一下吗?任何帮助将不胜感激!

正如 Gagravarr 所说,API 一直不支持创建功能性网站,直到 Billerby 指出,REST API 做出了一些改进。

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

的子类型

尽管这很可能无法通过 CMIS 工作,但我想指出您正在使用 "something" 进行站点预设。除非您定义了一个名为 "something".

的新站点预设,否则这是行不通的

默认情况下,有一个现成的站点预设名为 "site-dashboard",它是 "Collaboration Site" 预设的 ID。

您可以将 st:sitePreset 更改为 "site-dashboard" 并查看是否可以更进一步。