连接到AEM 6.0 JCR:前提条件失败

时间:2015-10-12 14:13:57

标签: java aem jcr http-status-code-412

我在连接到AEM 6.0中的JCR存储库时遇到了一些问题。当我在repostory上创建session时,我得到javax.jcr.lock.LockException: Precondition Failed

我一直在使用此tutorial开始使用。

这是我非常简单的代码示例:

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 个答案:

答案 0 :(得分:6)

在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:Precondition Failed

答案 1 :(得分:1)

显而易见: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.stackoverflow.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>