【发布时间】:2016-06-11 16:43:10
【问题描述】:
我想在我的项目中使用橡木作为嵌入式。首先我编写了一个测试方法。在我的方法中,我在这里使用了与此示例相同的代码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();
我必须每次调用 createRepository() 还是第一次调用,然后使用其他方法连接存储库。
是否需要关闭存储库?
【问题讨论】:
-
当你的代码调用 session.logout() 并返回时会发生什么?
-
logout() 的返回类型是无效的。我没有收到任何错误。我只是问这是正确的做法吗?因为在 jackrabbit 橡树网站中没有任何 repo 关闭。