我需要使用远程jackrabbit存储库。我使用以下代码连接到本地存储库:
Repository repository = new TransientRepository();
Session session = repository.login(new SimpleCredentials("username", "password".toCharArray()));
这适用于本地存储库但是我该怎么做远程长耳兔?
答案 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接口来远程访问我们的存储库。