我在连接到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);
}
}
}
非常感谢任何指导。
答案 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");
请查看以下链接
答案 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>