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 に答える