【问题标题】:can not use jackrabbit and usermanagement via JCA不能通过 JCA 使用 jackrabbit 和用户管理
【发布时间】:2017-03-13 14:17:36
【问题描述】:

我正在使用 jackrabbit 2.12.4 作为 JCA(通过 RAR 包)并在 默认 JCR 操作我想使用用户管理器 添加/删除/编辑用户:

会话 s = repo.login(...); UserManager umngr = ((JackrabbitSession) s).getUserManager();

*这会引发以下异常* java.lang.ClassCastException:org.apache.jackrabbit.jca.JCASessionHandle 不能转换为 org.apache.jackrabbit.api.JackrabbitSession

用户管理是否只能在嵌入时进行?使用长耳兔 我可以使用或构建任何解决方法吗?

最好的问候

【问题讨论】:

  • 你解决了这个问题吗?

标签: jackrabbit


【解决方案1】:

要从 Jackrabbit JCA 登录存储库,您可以看到 this topic,会话类是:

import java.io.Serializable;
import java.net.MalformedURLException;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.jcr.LoginException;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.naming.InitialContext;
import javax.naming.NamingException;
@Stateless
public class OcmRepository implements Serializable {

    public Repository repository;
    public Session session;

    public OcmRepository() {
    }

    public Session getSession(String log, String mdp) throws LoginException, RepositoryException, NamingException, MalformedURLException {
        InitialContext initalContext = new InitialContext();
        repository = (Repository) initalContext.lookup("jndi/jca");
        session = repository.login(new SimpleCredentials(log, mdp.toCharArray()), null);
        return session;
    }
}

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2012-06-24
    • 2016-09-24
    • 1970-01-01
    相关资源
    最近更新 更多