2011-05-02 122 views
8

我需要使用遠程長耳兔倉庫。我用下面的代碼連接到本地資源庫:如何訪問遠程jackrabbit存儲庫?

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

,這適用於本地資源庫,但我該怎麼辦櫃面遠程兔崽子呢?

回答

4

您是否嘗試過使用它?

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

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

這應該在遠程存儲庫公開RMI服務時起作用。請注意,RMI訪問通常被認爲很慢。

有關訪問遠程存儲庫的更多信息,請參閱here

2

我們使用Sling提供的REST界面來遠程訪問我們的存儲庫。

+0

我們怎樣才能通過吊索訪問獨立rackrabbit服務器,而不使用其發射臺。我相信它應該是配置的改變。但是哪裏?謝謝。 – Bee 2012-06-03 07:56:52

+2

我不記得我是如何完成這個的。我們不再使用Sling。我認爲我們發現API太混亂/限制,或者它沒有我們正在尋找的一些功能(也許這是加密文件的能力?)。我編寫了自己的簡化REST API來調用Jackrabbit API。祝你好運! – Vinnie 2012-06-04 13:33:50

+0

@Vinnie Hi Vinnie,你能分享一下你爲訪問遠程倉庫而寫的其他信息嗎?它比RMI或webdav更快嗎? – Gandhi 2017-08-21 08:02:57

4

另一種選擇是的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()); 
+0

我現在正在使用兩者。在Jackrabbit中,WebDAV沒有比RMI更快的方式。它在哪裏說的?另外WebDAV不提供幾乎相同數量的功能。 – EJP 2012-09-09 07:44:25

+0

你好,EJP,我想更新一個節點,但RMI和webdav失敗。你能提供一個關於你如何做的例子嗎? – 2012-12-04 22:19:20

+0

您需要將正確的依賴項添加到項目中。要使用webdav連接器,您需要將jackrabbit-jcr2dav添加到您的類路徑中:http://search.maven.org/remotecontent?filepath=org/apache/jackrabbit/jackrabbit-jcr2dav/2.6.0/jackrabbit-jcr2dav-2.6 .0.jar – ilikeorangutans 2013-04-03 17:17:44