执行查找时出现Java LDAP错误

时间:2012-06-18 14:07:09

标签: java ldap-query

我正在Sun One LDAP中查找对象并获取下面给出的异常:

javax.naming.NamingException:使用对象工厂生成对象的问题[根
  异常是java.lang.IllegalAccessException:类javax.naming.spi.NamingManager可以
  不能使用修饰符“public”]访问com.ldap.java.LDAPFactory类的成员;其余   name cn = favorite,dc = xxx,dc = abc,dc = cdf'

在下面给出的代码中抛出异常,其中“Read Object back”:

        Fruit fruit = new Fruit("orange", "sweet and sour");

        // Perform bind
        ctx.bind("cn=favorite,dc=xxx,dc=abc,dc=cdf", fruit);
        logger.info("Entry bind...Complete");

        // Read object back
        Object f2 = ctx.lookup("cn=favorite,dc=xxx,dc=abc,dc=cdf");
        logger.info("Fruit = " + f2);

        // Read attributes to see encoding
        Attributes attrs = 
                    ctx.getAttributes("cn=favorite,dc=xxx,dc=abc,dc=cdf");
        logger.info("Atrributes = " + attrs);

        // Close the context when we're done
        ctx.close()

有人能告诉我代码中有什么问题吗?

-

韩国社交协会 巴勒特

1 个答案:

答案 0 :(得分:1)

我通过以下代码解决了这个问题:

现有代码:

    String classname = Fruit.class.getName();
    StringRefAddr classref = new StringRefAddr("java:".concat(name), fruit + ":" + fruitType);
    String classfactoryname = FruitFactory.class.getName();

    Reference ref = new Reference(classname, classref, classfactoryname, null);

    logger.info("getReference(): END");

    return ref;

新守则:

    String classname = Fruit.class.getName();
    StringRefAddr classref = new StringRefAddr("java:".concat(name), fruit + ":" + fruitType);
    //String classfactoryname = FruitFactory.class.getName();

    Reference ref = new Reference(classname, classref);

    return ref;

-
Tks
巴勒特