使用SearchService,LANGUAGE_CMIS获取Alfresco文件夹NodeRef

时间:2017-10-23 09:54:06

标签: web-services alfresco cmis alfresco-webscripts opencmis

我有一个java支持的webscript。我使用SearchService方法获取此NodeRef中存储在Alfresco存储库中的文件夹的PATH

/app:company_home/app:dictionary/app:models\

我在searchService方法中使用LANGUAGE_CMIS_STRICT,如下所示:

NodeRef activeModelRepositoryNodeRef=searchService.query(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, 
                    SearchService.LANGUAGE_CMIS_STRICT, "select * cmis:objectId where contains ('PATH:\"/app:company_home/app:dictionary/app:models\"')").getNodeRef(0);

获取models文件夹的nodeRef但我在执行查询时仍然在日志中收到此错误:

  

错误[extensions.webscripts.AbstractRuntime] [http-bio-8080-exec-19]   executeScript中的异常:第1行:第9行不匹配的输入   ' CMIS:的ObjectID'期待FROM([@ 4,9:21 =' cmis:objectId',< 37>,1:9])   in fromClause

任何人都可以告诉我我做错了什么,或者告诉我如何在NodeRef查询中使用LANGUAGE_CMIS_STRICT获取文件夹SearchService(我不想使用LANGUAGE_LUCENE)。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

你只是缺少FROM关键字。

select * FROM cmis:objectId

答案 1 :(得分:2)

这是不正确的:

select * from cmis:objectId

from子句应包含有效类型,如cmis:document或自定义类型。

也许你的意思是:

select cmis:objectId from cmis:document

但我还要补充一点,它将返回CMIS对象ID,而不是Alfresco节点引用。这是两件不同的事情,虽然看起来很相似。

如果您真的希望Alfresco节点ref查找名为alfcmis:nodeRef的属性。