1

我想在我的项目中使用橡木作为嵌入式。首先我写了一个测试方法。在我的方法中,我在此示例中使用相同的代码https://jackrabbit.apache.org/oak/docs/construct.html代码运行得很好,但除非我关闭存储库,否则它不会终止:

((RepositoryImpl) repo).shutdown();

所以在我的项目中,不是第一次,而是当我想连接到我调用的存储库时

mongoClient = new MongoClient(host, port);  
DB db = mongoClient.getDB(dbName);  
Builder builder = new DocumentMK.Builder(); 
builder.setMongoDB(db); 
ns = builder.getNodeStore();    
Oak oak = new Oak(ns);  
Jcr jcr = new Jcr(oak); 
repo = jcr.createRepository();  
try {   
    session = repo.login(new SimpleCredentials("admin", "admin".toCharArray()));    
} 
catch (LoginException e) {
    ...
}

最后

session.logout(); 
((RepositoryImpl) repo).shutdown(); 
ns.dispose(); 
mongoClient.close();
  1. 我是否必须每次或仅第一次调用 createRepository() 然后使用另一种方法来连接存储库。

  2. 是否需要关闭存储库?

4

1 回答 1

1

我是否必须每次或仅第一次调用 createRepository() 然后使用另一种方法来连接存储库。

如果您保留存储库对象,您将必须第一次创建存储库并在其上使用相同的登录。如果您丢失了存储库,例如关闭,您将不得不从头开始。

是否需要关闭存储库?

文档中所述,我们需要这样做以释放资源并保持更改(如果有)。

于 2016-03-01T11:42:22.470 回答