Alfresco使用方面/ REST API进行复制

Bri*_*anV 1 java rest alfresco cmis

我正在编写一个与Alfresco社区4.2连接的自定义应用程序.我有一个集成的自定义数据模型,并且让我感到懊恼,我无法使用CMIS复制文档,因为自定义方面无法识别(如本期所述).我想,我可以手动复制所有属性并根据需要设置类型,但我想到了使用内置复制操作来完成我的任务,并通过REST API调用此操作.似乎这应该正确复制自定义类型,不是吗?

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

2)如何通过REST调用复制操作?我甚至无法弄清楚我应该使用的URL.我已经看过一些文档,但还没有能够解决它.

谢谢!

Jef*_*tts 5

您正在使用4.2.e,因此,正如Gagravarr所说,使用OpenCMIS Extension for Alfresco在CMIS 1.0中支持方面.在4.2.e中支持的CMIS 1.1中,作为secondaryTypes(方面的同义词).

需要注意的是,在4.2中,CMIS URL已更改.如果要使用CMIS 1.0 AtomPub,则URL为:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.0/atom
Run Code Online (Sandbox Code Playgroud)

如果您想使用CMIS 1.1 AtomPub,则URL为:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom
Run Code Online (Sandbox Code Playgroud)

鉴于这些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);
Run Code Online (Sandbox Code Playgroud)

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

CMIS 1.0 AtomPub,没有OpenCMIS扩展:在没有自定义方面的情况下复制成功.

CMIS 1.0 AtomPub,OpenCMIS扩展:复制失败,出现IllegalArgumentException.

CMIS 1.1,没有OpenCMIS扩展(不需要):复制成功,所有自定义方面和属性值保持不变.

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