2014-12-10 2 views
0

Я пытаюсь переместить узлы с одного пути на другой & получать исключение:javax.jcr.ItemExistsException при перемещении узла в JCR

com.aem.tagmodels.MoveNodes Source is --> /content/dam/geometrixx/portraits/scott_reynolds.jpg 
10.12.2014 16:38:27.952 *INFO* [127.0.0.1 [1418209707948] GET /content/AEMProject/Test/jcr:content/par/session_op.html HTTP/1.1] com.aem.tagmodels.MoveNodes Destination is --> /content/dam/geometrixx/drm 
10.12.2014 16:38:27.952 *INFO* [127.0.0.1 [1418209707948] GET /content/AEMProject/Test/jcr:content/par/session_op.html HTTP/1.1] com.aem.tagmodels.MoveNodes Session --> session-38784 
10.12.2014 16:38:27.952 *ERROR* [127.0.0.1 [1418209707948] GET /content/AEMProject/Test/jcr:content/par/session_op.html HTTP/1.1] com.aem.tagmodels.MoveNodes Error is javax.jcr.ItemExistsException: /content/dam/geometrixx/drm 

Я проверил нет узла внутри УРБ с таким же именем как scott_reynolds.jpg. Ниже приведен фрагмент кода.

session.getWorkspace().move(source,destination); 
     session.save(); 

Благодаря

ответ

0

кажется, что вы используете родительский узел, /content/dam/geometrixx/drm, в качестве пункта назначения. Это назначение существует, и именно поэтому вы получаете исключение, так как метод move() ожидает совершенно новый путь в качестве второго параметра:

Строго говоря, параметр destAbsPath на самом деле абсолютный путь к родительскому узлу новых местоположение, добавленное с новым именем, которое требуется для перемещенного узла.

(from Javadoc).

Вы должны использовать полный путь, родительский, за которым следует новое имя, например: /content/dam/geometrixx/drm/scott_reynolds.jpg.

+0

K Спасибо, На самом деле, мое требование было введено двумя nodetypes, которые уже находятся под иерархией и перемещают дочерний узел из одного в другой. Здесь проблема: путь назначения должен быть предоставлен автором, который существует в crx, в этом случае у нас есть пункт назначения уже и просто хотите переместить узлы под ним. Будет ли полезен какой-либо другой метод в API. –

+0

Если у вас есть родительский узел назначения, просто добавьте к нему '/ someName'. –

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