- - PR -
JNDIでのContextの使用方法について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-08-06 18:41
いつもお世話になっております。
be1300ccです。 前回投稿させて頂きました件につきましては、無事にデータを取得することができたました。 別件でAPIを見てもどうしても分からない点が1点ありますので質問させて頂きます。 今までは、データの取得の際にjavax.naming.directoryのDirContextを使用しておりました。 DirContext ctx = new InitialDirContext(env) ; ですが、DirContextではなく、javax.namingのContextを使用して試して見たいのですが、 Context ctx = new InitialContext(env) ; DirContextを使用した場合と同様の処理を記述したいのですが、これ以降のロジックの記述 の仕方がわかりません。 同様の処理をさせる場合、どのように記述すればよいのでしょうか? ご享受お願いします。 【ldapget.java】 import javax.naming.* ; import javax.naming.directory.* ; import java.util.Hashtable ; class ldapget { public static void main(String[] args) { Hashtable env = new Hashtable(11) ; env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory") ; env.put(Context.PROVIDER_URL,"ldap://wintel:389/dc=jp") ; env.put(Context.SECURITY_PRINCIPAL,"cn=Manager,dc=tec,dc=jp") ; env.put(Context.SECURITY_CREDENTIALS,"secret") ; try { // DirContext ctx = new InitialDirContext(env) ; Context ctx = new InitialContext(env) ; /** ↓これ以降の記述が分かりません */ Attributes attrs = ctx.getAttributes(args[0]) ; NamingEnumeration ae = attrs.getAll() ; while (ae.hasMore()) { Attribute attr = (Attribute)ae.next() ; System.out.println("attribute: " + attr.getID()) ; NamingEnumeration e = attr.getAll() ; while (e.hasMore()) { System.out.println("value: " + e.next()) ; } } } catch(Exception e) { e.printStackTrace(); System.out.println("e: " + e) ; } } } |
|
投稿日時: 2003-08-07 18:25
お世話になります。be1300ccです。
APIを見ながら、試行錯誤しながら考え、下記のように変更しました。 【DirContextの場合】 DirContext ctx = new InitialDirContext(env) ; Attributes attrs = ctx.getAttributes(args[0]) ; NamingEnumeration ae = attrs.getAll() ; 上記を変更。 【Contextの場合】(もしかしたらコードの記述が間違っているかもしれません) Context initctx = new InitialContext(env) ; Context envCtx = (Context) initctx.lookup(args[0]) ; NamingEnumeration ae = envCtx.listBindings(args[0]) ; 1点疑問なのですが、DirContextを使用した場合は属性を取得できるのですが、 Contextを使用した場合は、通常だと属性を取得できないような気がするのですが・・・。 初歩的な質問で大変申し訳ありませんが、ご享受お願いします。 |
1
