2012-10-10 1 views
0

Я использую DotCMIS без проблем для подключения к Alfresco и FileNet.Файлы IBM Connections CMIS: невозможно найти объект по пути/Мои файлы

Я registered для IBM Connections счета, добавлено несколько файлов через веб-интерфейс, и попытался подключиться к своей КМИС конечной https://greenhouse.lotus.com/files/basic/cmis/my/servicedoc

GetRepositories по этому URL дает одно хранилище, которое, в свою очередь, содержит две папки ниже:

My Files 
My Folders 

Но когда я бегу GetObjectByPath("/My Files") в том же хранилище, я получаю:

DotCMIS.Exceptions.CmisObjectNotFoundException was unhandled 
Message=Not Found 
Source=DotCMIS 
ErrorContent=<?xml version="1.0" encoding="UTF-8"?><lcmis:error xmlns:lcmis="http://www.ibm.com/xmlns/prod/sn/cmis"><lcmis:code>objectNotFound</lcmis:code><lcmis:message>EJPVJ9023E: Unable to find object at path /My Files</lcmis:message><lcmis:userAction></lcmis:userAction></lcmis:error> 

Что говорит IBM Connections Unable to find object at path /My Files, несмотря на то, что My Files является папкой в ​​корне репозитория?

ответ

2

Свойство cmis: name («Мои файлы», «Мои папки») локализовано. Пользователь, не владеющий английским языком, получит разные значения свойств cmis: name для этих двух объектов.

Чтобы получить детей из этих ресурсов, вам необходимо построить путь, используя свойство cmis: path, возвращаемое для каждого объекта, или построить путь относительно его родителя с помощью cmisra: pathSegment.

Например, КМИС: объект для ресурса с надписью «Мои файлы» в вашем сценарии имеет следующее:

<cmis:propertyString propertyDefinitionId="cmis:path" 
localName="cmis_path" displayName="Path" queryName="cmis:path"> 
<cmis:value>/files</cmis:value> 
</cmis:propertyString> 

Так на самом деле получить файлы пользователя, путь для вызова заключается в следующем:

GetObjectByPath("/files") 

И получить папки пользователя, путь для вызова заключается в следующем:

GetObjectByPath("/collections") 

Сеть должна гарантировать, что вы создаете пути, используя cmisra: pathSegment или свойство cmis: path, а не cmis: name, поскольку это может быть недействительным во всех сценариях (т. если в репозитории есть одно и то же имя и родственные братья и т. д.).

+0

Большое спасибо за отзыв! 'GetObjectByPath ("/files ")' fail с 'System.ArgumentException" Тип объекта должен иметь свойства defintions! " в DotCMIS.Client.Impl.AbstractCmisObject.Initialize' [* sic *]. Я также попробовал «GetObjectByPath» («/ snx: files»), который не работает с 'CmisObjectNotFoundException 'EJPVJ9023E: невозможно найти объект в пути/snx: files" в DotCMIS.Binding.AtomPub.AbstractAtomPubService.Read', я думаю, что это нормальное поведение. Я попробую несколько вещей с «/ files» и вернусь к вам позже. –

+0

Ваш отзыв о локализованных именах мне очень помог, спасибо! Я все еще получаю исключение, но, я думаю, это другая проблема, поэтому я создал проблему DotCMIS: https://issues.apache.org/jira/browse/CMIS-593 –

Смежные вопросы