如何将cmis事件对象id转换为cmis文档对象id,反之亦然

时间:2016-06-16 12:07:49

标签: alfresco cmis opencmis

我在openCMIS尝试露天并遇到了这个问题。 当我检索CMISObject的id时,我得到像 workspace://SpacesStore/3a2bcd68-aabc-42ed-8229-bf8237aa59b7;1.0 这样的对象ID。当我访问alfresco中的更改时,我会将事件的对象ID称为 3a2bcd68-aabc-42ed-8229-bf8237aa59b7;1.0 。如何摆脱 workspace:// SpaceStore

代码段: -

private void getAllFilesInPath(String folderId, ArrayList<String> filesList) {
   ItemIterable<CmisObject> children = FileUtils.getFolder(folderId, sessionObject).getChildren();

          for (CmisObject object : children) {
              if (object instanceof Folder) {
               getAllFilesInPath(object.getId(), filesList);
               } else if (object instanceof Document) {
                                filesList.add(object.getId());
              }
            }
         System.out.println(filesList.get(0));
    }

输出: workspace://SpacesStore/3a2bcd68-aabc-42ed-8229-bf8237aa59b7;1.0

 ItemIterable<ChangeEvent> events = sessionObject.
                              getContentChanges(currentChangeToken, true);
    for (ChangeEvent changeEvent : events) {
    objectId = changeEvent.getObjectId();
    System.out.println(objectId);

输出: 3a2bcd68-aabc-42ed-8229-bf8237aa59b7;1.0

有没有办法做到这一点。请帮助。

1 个答案:

答案 0 :(得分:1)

根据Gagravarr发表的评论,我发现我正在谈论错误的露天终点。我已将AtomPub网址参数更改为

<强> http://localhost:6080/alfresco/api/-default-/public/cmis/versions/1.1/atom

现在它运作正常。我使用第一次调用 getRepositories 方法获得的 -default- 存储库ID。

参考:1。CMIS REST AtomPub URL reference 2。CMIS Request URL format(On premise)

感谢Gagravarr:)