0

嗨,我该怎么做存储库的编程配置,因为存储库中的大多数配置参数只能在运行时确定。

当我尝试打印它在下面抛出 NPE 代码的会话时,似乎我无法使用匿名凭据

   config.repositorySource("store")
          .usingClass(DiskSource.class)
          .setProperty("repositoryRootPath", "c:/x/repo1")
          .setProperty("defaultWorkspaceName","default");

          config.repository("content")
          .setOption(JcrRepository.Option.USE_ANONYMOUS_ACCESS_ON_FAILED_LOGIN, "true")
          .setSource("store");

    Session session  =  engine.getRepository("content").login("default");

我可以将自定义身份验证器添加到 JcrConfiguration 吗?

4

1 回答 1

0

配置 ModeShape 引擎的正确方法是使用 JcrConfiguration 对象,如此处所述。这似乎是你正在做的,所以那部分是正确的。

创建配置后,您可以检查它是否存在问题:

if ( !configuration.getProblems().isEmpty() ) {
    for ( Problem problem : configuration.getProblems() ) {
         // Report these problems!
    }
}

假设没有问题,您可以使用您的配置创建一个新的 JcrEngine 实例(请参阅文档):

JcrConfiguration config = ...
JcrEngine engine = config.build();
engine.start();

然后,按名称查找存储库并使用 JCR API 登录:

javax.jcr.Repository repository = engine.getRepository("Name of repository");

Credentials credentials = ...; // JCR credentials
String workspaceName = ...;  // Name of repository workspace
Session session = repository.login(credentials,workspaceName);
于 2012-10-01T12:04:22.083 回答