java - 带有 aspects/REST API 的 Alfresco 副本

标签 java rest alfresco cmis

我正在编写一个与 Alfresco 社区 4.2 交互的自定义​​应用程序。我有一个集成的自定义数据模型,令我懊恼的是我无法使用 CMIS 复制文档,因为无法识别自定义方面(如 this issue 中)。我想我可以手动完成,通过复制所有属性并设置适当的类型,但我突然想到使用内置复制操作来完成我的任务,并通过 REST API 调用此操作。这似乎应该正确地复制自定义类型,不是吗?

1) 这听起来是个好方法吗?

2) 如何通过 REST 调用复制操作?我什至无法弄清楚我应该为此使用的 URL。我看过一些文档,但还没能整理出来。

谢谢!

最佳答案

您使用的是 4.2.e,因此,正如 Gagravarr 所说,使用 Alfresco 的 OpenCMIS 扩展在 CMIS 1.0 中支持方面。在 4.2.e 中支持的 CMIS 1.1 中,作为次要类型(方面的同义词)。

需要注意的重要一点是,在 4.2 中,CMIS URL 已更改。如果你想使用 CMIS 1.0 AtomPub,URL 是:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.0/atom

如果你想使用 CMIS 1.1 AtomPub,URL 是:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom

鉴于这些 URL、Alfresco 4.2.e、OpenCMIS 0.10.0 和 OpenCMIS 扩展 0.7,以下是运行此代码的结果:

Document sourceDoc = (Document) cmisSession.getObjectByPath("/Someco/Whitepapers/whitepaper2.txt");
Folder targetFolder = (Folder) cmisSession.getObjectByPath("/destinationFolder");
sourceDoc.copy(targetFolder);

whitepaper2.txt 是一个包含多个自定义方面和自定义元数据集的文档:

CMIS 1.0 AtomPub,无 OpenCMIS 扩展:没有自定义方面复制成功。

CMIS 1.0 AtomPub、OpenCMIS 扩展:复制失败并出现 IllegalArgumentException。

CMIS 1.1,无 OpenCMIS 扩展(不需要):复制成功,所有自定义方面和 属性值完好无损。

所以答案是在针对 4.2.x 运行时使用 CMIS 1.1 支持。

关于java - 带有 aspects/REST API 的 Alfresco 副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22164147/

相关文章:

java - RESTful服务设计: Calling get all resource endpoint

java - Spring - RestTemplate 调用 https rest 服务时出错(证书错误)

java - 从 3.4.d 迁移扩展到 4.2.e(和 5.0.a)后,Alfresco 无法加载 spring 上下文

java - pig : UDF not returning expected resultset

java - 查找数字的个位数

http - 如何在 PUT 请求的情况下使 'other' URI 无效?

alfresco - 使用 alfresco java script api 或通过 Web 脚本启动工作流程

java - 在运行时获取当前类名

java - 在 Android 上接收广播消息

alfresco:将authority.ftl限制为一组用户