Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aem 从JCR会话对象获取JackrabbitSession对象_Aem_Jcr_Jackrabbit - Fatal编程技术网

Aem 从JCR会话对象获取JackrabbitSession对象

Aem 从JCR会话对象获取JackrabbitSession对象,aem,jcr,jackrabbit,Aem,Jcr,Jackrabbit,我的目标是从独立java应用程序中的JCR会话中获得JackrabbitSession。我花了几个小时在这上面,但找不到一个有效的例子 例如,一些post-like表示可以按如下方式从JCR会话转换为JackrabbitSession,但实际上不起作用,并抛出ClassCastException Repository repository = JcrUtils.getRepository("http://localhost:4502/crx/server"); session = reposit

我的目标是从独立java应用程序中的JCR会话中获得JackrabbitSession。我花了几个小时在这上面,但找不到一个有效的例子

例如,一些post-like表示可以按如下方式从JCR会话转换为JackrabbitSession,但实际上不起作用,并抛出ClassCastException

Repository repository = JcrUtils.getRepository("http://localhost:4502/crx/server");
session = repository.login( new SimpleCredentials("admin", "admin".toCharArray()), "crx.default");

JackrabbitSession js = (JackrabbitSession) session;
final UserManager userManager = session.getUserManager();
final User user = userManager.createUser(userName, userName);
session.save();
我想要本机JackrabbitSession的原因是,与上面的代码一样,我想要访问UserManager对象。在我的用例中,JCR存储库驻留在AEM实例中,我希望在该实例上创建/删除用户


Thx提前

您可以通过调整resourceResolver获得UserManager:


userManager=resolver.adapto(userManager.class)

如何从java独立应用程序(我的用例)中获得该解析器?@isaac.hazan如果您在sling概念中,您可以使用factory创建resourceResolver,或者注入它somehow@isaac.hazan如果您在SlingHttpServletRequest的上下文中,您可以很容易地从Request获得它,正如我在上面的评论中所说的。如果我在Sling中,那么获取解析器很容易,问题的关键是我正试图从一个独立的应用程序中实现这一点。即使是提供的答案也是离题的,因为它假设我在一个吊索容器中。在AEM中创建一个
Servlet
,公开一个简单的(REST)API,可供您的独立应用程序使用,可能会更容易。使用Sling的开箱即用功能创建/读取/更新/删除用户可能更容易,但可能没有那么灵活。您只需发出HTTP请求: