1

我正在开发一个 apache sling WCMS。我想将安全内容(用户和组)导出到 xml 文件。

我使用了以下代码,但有一个例外:

OutputStream output = new FileOutputStream("d:\\bk.xml");
session.exportSystemView("/rep:security", output, false, false);
output.flush();
output.close();

而这里的例外:

javax.jcr.PathNotFoundException: /rep:security
        at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:545)
        at org.apache.jackrabbit.core.SessionImpl.getItem(SessionImpl.java:876)
        at org.apache.jackrabbit.commons.AbstractSession.export(AbstractSession.
java:541)
        at org.apache.jackrabbit.commons.AbstractSession.exportDocumentView(Abst
ractSession.java:237)
        at org.apache.jackrabbit.commons.AbstractSession.exportDocumentView(Abst
ractSession.java:279)....

它是导出用户和组的真正方法吗?

任何帮助表示赞赏。

4

1 回答 1

2

我发现我在哪里被忽略了rep:securityrep:securitysecurity存储库的工作区中,所以如果我想导出它的内容,我应该先登录安全工作区。

我将代码更正如下,并且可以导出 rep:security:

Session securitySession = session.getRepository().login(new SimpleCredentials("admin", "XXX".toCharArray()), "security");
OutputStream output = new FileOutputStream("d:\\bk.xml");
securitySession.exportSystemView("/rep:security", output, false, false);
output.flush();
output.close(); 
于 2013-05-08T12:26:07.547 回答