2015-03-26 3 views
0

Я пытаюсь получить свойства узла в CQ. Но я не могу получить свойства. Получение исключения говорит, что это не относительный путь.Проблема при получении свойств узла

Session session; 
Node root = session.getRootNode(); 
Node jcrContent = root.getNode("/content/moto/contact/jcr:content"); 
System.out.println("val:"+jcrContent.getProperty("jcr:title")); 

произошло исключение Not a relative path: /content/moto/contact/jcr:content

Пожалуйста, помогите мне.

ответ

0

Попробуйте

Node root = session.getRootNode(); 
Node jcrContent = root.getNode("content/moto/contact/jcr:content"); 

#getNode() ожидает относительный путь, в то время как вы обеспечивали абсолютный путь. Отсюда ошибка, not a relative path.

1

Если вы используете CQ5, вы, вероятно, захотите положиться в API Sling вместо базового JCR. Вы можете использовать ResourceResolver для этой цели:

Resource resource=resourceResolver.getResource("/your/resource"); 
ValueMap props= resource.adaptTo(ValueMap.class) 
String title= props.get("jcr:title"); 

Разрешитель ресурс доступен всегда через слинг запроса (slingRequest.getResourceResolver()). Если у вас нет запроса (например, в рабочем процессе), вы все равно можете его получить, но это зависит от вашего сценария

+0

+1 для использования ValueMap вместо JCR API в AEM/CQ5. Убедитесь, что ResourceResolver, исходящий из запроса Sling, «прочитал» доступ к пути узла i.e «/ content/moto/contact/jcr: content» в вопросе. – Sabya

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