如何访问远程jackrabbit存储库?

时间:2011-05-02 12:38:51

标签: java jackrabbit jcr

我需要使用远程jackrabbit存储库。我使用以下代码连接到本地存储库:

Repository repository = new TransientRepository();
Session session = repository.login(new SimpleCredentials("username", "password".toCharArray()));

这适用于本地存储库但是我该怎么做远程长耳兔?

3 个答案:

答案 0 :(得分:5)

您是否尝试过使用此功能?

import javax.jcr.Repository;
import org.apache.jackrabbit.commons.JcrUtils;

Repository repository = JcrUtils.getRepository("http://$SERVER_ADDRESS:$PORT/$CONTEXT");

如果远程存储库公开RMI服务,这应该有效。请注意,RMI访问通常被认为非常慢。

您可以找到有关访问远程存储库here的更多信息。

答案 1 :(得分:5)

另一个选项是WebDav,它应该比RMI快一些,但速度不如原生界面快:

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

import org.apache.jackrabbit.commons.JcrUtils;

public class main {

/**
 * @param args
 */
public static void main(String[] args) throws Throwable{
    String url = "http://localhost:8080/server";
    System.out.println("Connecting to " + url);
    Repository repository = JcrUtils.getRepository(url);
    SimpleCredentials creds = new SimpleCredentials("admin",
            "admin".toCharArray());
    Session jcrSession = repository.login(creds, "default");
    System.out.println("Login successful, workspace: " + jcrSession.getWorkspace());

答案 2 :(得分:2)

我们正在使用Sling提供的REST接口来远程访问我们的存储库。