我的open-source app会下载Alfresco文件夹的文件(按CMIS)。
算法很简单:
除了包含Working Copy文件的文件夹外,它工作正常,在这种情况下Alfresco说:
org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException: Stream id is invalid: workspace://SpacesStore/8b9a58ba-652f-4a18-8d26-aba06df98d25;pwc
at org.alfresco.opencmis.CMISConnector.getContentStream(CMISConnector.java:1199)
at org.alfresco.opencmis.AlfrescoCmisServiceImpl.getContentStream(AlfrescoCmisServiceImpl.java:1795)
at sun.reflect.GeneratedMethodAccessor700.invoke(Unknown Source)
;pwc
可能意味着"私人工作副本",这是CMIS协议中的一个特例。当Alfresco Share用户点击"离线编辑"时,会创建工作副本。在文件上(也就是退房/登记)。
我的算法有缺陷吗?或者它可能是Alfresco / OpenCMIS中的错误?
答案 0 :(得分:1)
我不确定细节,因为你没有粘贴触发异常的代码,你没有提到你正在使用的化学版本。无论如何,如果我在CMIS workbench v0.8.0中运行以下groovy代码,它会成功打印所有文件内容:
def obj = session.getObjectByPath("/cc");
def children = obj.getChildren();
for (doc in children) {
def s = doc.getContentStream();
def i = s.getStream();
println(i.text);
}
上面使用的cc
文件夹是我在Alfresco CMIS instance创建的文件夹,我在其中放置了一个文件并将其签出以创建PWC。我假设您的代码存在一些问题,因为上面的代码使用了相同的API。