Alfresco: элемент не может быть найден после создания ссылки

Я пытаюсь создать ярлык или ссылку на документ в Alfresco, используя апач-химию. Используя приведенный ниже код, я пытаюсь создать ссылку или ярлык

properties = new HashMap<String, Object>();
properties.put(PropertyIds.BASE_TYPE_ID, BaseTypeId.CMIS_ITEM.value()); 

// define a name and a description for the link
properties.put(PropertyIds.NAME, "Name_for_the.link");
properties.put("cmis:description", "test create link");            
properties.put(PropertyIds.OBJECT_TYPE_ID, "I:app:filelink"); 

//define the destination node reference
properties.put("cm:destination", "workspace://SpacesStore/41f43936-31c1-432e-bb33-438c05bcb26c");     

// choose a folder where the link is to be create
Folder destinationFolder = (Folder) session.getObjectByPath("/path/to/the/destination/folder");

session.createItem(properties, destinationFolder);

Теперь проблема в том, что я могу создать ссылку из приведенного выше кода, но всякий раз, когда я нажимаю на ссылку, она показывает мне

Товар не может быть найден. Либо у вас нет прав на просмотр элемента, либо он был удален, либо его никогда не существовало.


person deen    schedule 25.07.2016    source источник
comment
вы пытаетесь получить File или Folder ???   -  person Yagami Light    schedule 25.07.2016
comment
Просто как предложение, вы можете мотивировать людей помочь вам с голосованием, это просто предложение   -  person Yagami Light    schedule 25.07.2016
comment
спасибо за ответ, я использую файл   -  person deen    schedule 25.07.2016


Ответы (1)


Чтобы изменить свойства существующего объекта, вам сначала нужно получить его. Затем вы можете вызвать метод setProperty для самого объекта, передав идентификатор и новое значение для каждого свойства, которое вы собираетесь изменить. В конце просто вызовите метод updateProperties следующим образом:

public static void main(String args[]) {
String serverUrl = args[0];
String username = args[1];
String password = args[2];
Session session = getSession(serverUrl, username, password);
Folder root = session.getRootFolder();
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_DOCUMENT.
value());
String name = "New Document (" + System.currentTimeMillis() +
").txt";
properties.put(PropertyIds.NAME, name);
List<Ace> addAces = new LinkedList<Ace>();
List<Ace> removeAces = new LinkedList<Ace>();
List<Policy> policies = new LinkedList<Policy>();
String content = "The quick brown fox jumps over the lazy dog.";
ContentStream contentStream = new ContentStreamImpl("text.txt",
BigInteger.valueOf(content.length()),
"text/plain", new ByteArrayInputStream(content.getBytes()));
Document newDocument = root.createDocument(properties,
contentStream, VersioningState.MAJOR, policies, addAces, removeAces,
session.getDefaultContext());
newDocument.setProperty(PropertyIds.NAME, "Modified document (" +
System.currentTimeMillis() + ").txt");
newDocument.updateProperties();
session.save();
}

в этом методе я изменяю свойства документа, попробуйте сделать что-то подобное Надеюсь, что это помогло вам

person Yagami Light    schedule 25.07.2016
comment
спасибо за ответ, это не то, что я хочу, я хочу создать ссылку или ярлык. Не могли бы вы рассказать мне, как я могу получить nodeRef из объекта документа. спасибо - person deen; 25.07.2016