【发布时间】:2015-07-10 21:26:58
【问题描述】:
我想向 AEM 写入一些数据,下面的代码在 AEM 6.0 中对我来说可以正常工作,但在 AEM 6.1 中却不行,总是引发如下登录异常:
“获取服务的 CRX 用户时出现登录异常:'writeService'.org.apache.sling.api.resource.LoginException:无法为捆绑组派生用户名.tti.commons-service [395]和子服务 writeService"
OSGI 配置:
我班上的代码:
import javax.jcr.Session;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
....
@Reference
private ResourceResolverFactory factory;
private ResourceResolver resourceResolverWriter;
private static Session adminSession;
...
...
Map<String, Object> param = new HashMap<String, Object>();
param.put(ResourceResolverFactory.SUBSERVICE, "writeService");
try {
resourceResolverWriter = factory.getServiceResourceResolver(param);
adminSession = resourceResolverWriter.adaptTo(Session.class);
...
} catch (LoginException e) {
...
}
我在 AEM 6.1 上遗漏了什么吗?
【问题讨论】:
-
我假设这里对 resourceResolverWriter 的引用是一个错字。否则这段代码甚至不会编译。
-
更新了原帖中的代码。