Подключение к AEM 6.0 JCR: предварительное условие не выполнено

У меня возникли некоторые проблемы с подключением к хранилищу JCR в AEM 6.0. Когда я доберусь до точки создания session в репозитории я получаю javax.jcr.lock.LockException: Precondition Failed,

Я использовал этот учебник, чтобы начать.

Вот мой очень простой пример кода:

import java.io.FileNotFoundException;
import java.io.FileReader;

import javax.jcr.Repository;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;

import org.apache.jackrabbit.commons.JcrUtils;

import com.opencsv.CSVReader;


public class Main { 

    public static void main(String[] args) throws FileNotFoundException {
        Repository repository;
        FileReader fileReader;
        CSVReader csvReader;

        try {
            System.out.println("connecting to repository");
            repository = JcrUtils.getRepository("http://localhost:4502/crx/server");

            Session session = repository.login( new SimpleCredentials("admin", "admin".toCharArray())); // throws javax.jcr.lock.LockException: Precondition Failed

        }
        catch(Exception e) {
            System.out.println(e);
        }
    }

}

Любое руководство будет с благодарностью.

2 ответа

Внутри репозитория JCR контент организован в одно или несколько рабочих пространств, каждое из которых содержит иерархическую структуру узлов и свойств. Таким образом, чтобы создать сеанс jcr и узел доступа и свойства, вам нужно передать рабочую область с учетными данными, рабочая область AEM по умолчанию - crx.default

Вместо:

Session session = repository.login( new SimpleCredentials("admin", "admin".toCharArray()));

Используйте:

Session session = repository.login( new SimpleCredentials("admin", "admin".toCharArray()),"crx.default");

Пожалуйста, проверьте ссылку ниже

javax.jcr.lock.LockException: предварительное условие не выполнено

Очевидное первое: работает ли сервер AEM?

Во-вторых: Возможно, ваша среда сборки настроена неправильно, я смог настроить рабочий проект, используя ваш код и этот файл maven:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0     http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.stackru.test</groupId>
<artifactId>access_crx_from_outside</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
    <dependency>
        <groupId>javax.jcr</groupId>
        <artifactId>jcr</artifactId>
        <version>2.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-jcr-commons</artifactId>
        <version>2.7.4</version>
    </dependency>

    <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-jcr2dav</artifactId>
        <version>2.6.0</version>
    </dependency>
</dependencies>

Другие вопросы по тегам