- PR -

JNDIのエントリー情報取得について

1
投稿者投稿内容
be1300cc
ベテラン
会議室デビュー日: 2002/07/04
投稿数: 88
投稿日時: 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 ]
be1300cc
ベテラン
会議室デビュー日: 2002/07/04
投稿数: 88
投稿日時: 2003-08-06 17:25
自己解決しました。
ありがとうございました。
kito
ベテラン
会議室デビュー日: 2003/03/24
投稿数: 59
お住まい・勤務地: Osaka
投稿日時: 2003-08-06 20:26
引用:

be1300ccさんの書き込み (2003-08-06 17:25) より:
自己解決しました。
ありがとうございました。


よろしければ何が悪くてどうやって解決したのかポイントだけでも書き込んでいただけると
今後同じように困った人の助けになってよろしいかと思います。(^^)
be1300cc
ベテラン
会議室デビュー日: 2002/07/04
投稿数: 88
投稿日時: 2003-08-07 09:12
kitoさん初めまして。
アドバイスありがとうございます。
やはり、今後同じ境遇に会った方に役立ちますよね。

今回私が間違っていたのは、ソースではなく実行時のパラメータの指定でした。

【実行コマンド】
誤:java ldapget 'cn=Manager,dc=tec,dc=jp'
正:java ldapget 'cn=Manager'

実行時にrootDNをそのまま指定していたのが、誤りでした。
ソース上のDNに実行時のパラメータは依存するようです。


1

スキルアップ/キャリアアップ(JOB@IT)