- - PR -
JNDIのエントリー情報取得について
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-08-04 16:09
いつもお世話になっております。
be1300ccと申します。 現在JNDIを学習しながら、LDAPサーバーからエントリー情報を取得する JNDIに関するコードを作成しています。 あるサンプルを元に作成したのですが、どうしてもエントリーが上手く 取得することができません。 【入力したコマンド】 $ java ldapget "dc=tec, dc=jp" 【エラー内容】 Problem getting attribute: javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'dc=tec, dc=jp' 確かにLDAPサーバー上には、上記エントリーがあるのですが・・・。 ご享受お願いします。 【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/dc=tec,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) ; 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 (NamingException e) { System.err.println("Problem getting attribute: " + e) ; } } } [ メッセージ編集済み 編集者: be1300cc 編集日時 2003-08-05 14:45 ] [ メッセージ編集済み 編集者: be1300cc 編集日時 2003-08-06 13:23 ] | ||||
|
投稿日時: 2003-08-06 17:25
自己解決しました。
ありがとうございました。 | ||||
|
投稿日時: 2003-08-06 20:26
よろしければ何が悪くてどうやって解決したのかポイントだけでも書き込んでいただけると 今後同じように困った人の助けになってよろしいかと思います。(^^) | ||||
|
投稿日時: 2003-08-07 09:12
kitoさん初めまして。
アドバイスありがとうございます。 やはり、今後同じ境遇に会った方に役立ちますよね。 今回私が間違っていたのは、ソースではなく実行時のパラメータの指定でした。 【実行コマンド】 誤:java ldapget 'cn=Manager,dc=tec,dc=jp' 正:java ldapget 'cn=Manager' 実行時にrootDNをそのまま指定していたのが、誤りでした。 ソース上のDNに実行時のパラメータは依存するようです。 | ||||
1
