我想在我的项目中使用oak作为嵌入式。首先,我编写了一个测试方法。在我的方法中,我使用此示例中的相同代码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()然后使用另一种方法来连接存储库。
是否需要存储库?
答案 0 :(得分:1)
我是每次还是第一次调用createRepository()然后使用另一种方法来连接存储库。
如果保留存储库对象,则必须首次创建存储库并使用相同的方法进行登录。如果您丢失了存储库,就像在关闭时一样,您必须从头开始。
是否需要关闭所需的存储库?
正如documentation中所述,我们需要这样做以释放资源并保留更改(如果有的话)。