0

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

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

在下面给出的“读取对象”的代码中引发了异常:

        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()

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

--

Tks 巴拉特

4

1 回答 1

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
巴拉特

于 2012-06-19T13:33:03.207 回答