LDAP リポジトリーでの検索中に javax.naming.NameNotFoundException が発生した場合は、以下のトラブルシューティング手順に従ってください。
Microsoft Active Directory など、ルート・ベース検索がサポートされていない LDAP リポジトリーでルート・ベース検索が実行されたために、javax.naming.NameNotFoundException が発生します。
この問題の原因を検証するには、次の例に示す wimconfig.xml ファイルの基本項目を調べます。
<config:baseEntries name="dc=ibm,dc=com" nameInRepository=""/>
この例のパラメーターは、WebSphere Application Server 管理コンソールの「リポジトリー参照」設定ページに指定されている値にマップされます。
name パラメーターは、このリポジトリーの Virtual member manager 基本項目であり、Virtual member manager レルム内で固有でなければなりません。LDAP リポジトリーのセットアップ時に、name パラメーターが「レノム内でこのエントリー・セットを一意的に識別するベース・エントリーの識別名」フィールドに指定されている値にマップされます。
nameInRepository パラメーターは、リポジトリー内の基本項目の LDAP 識別名です。 これは、LDAP ディレクトリー・サーバー内の検索開始点を示します。nameInRepository パラメーターは、「このリポジトリー内のベース・エントリーの識別名」フィールドに指定されている値にマップされます。
「このリポジトリー内の基本項目の識別名 (Distinguished name of a base entry in this repository)」フィールドが空白のままの場合 (つまり nameInRepository="" の場合)、LDAP リポジトリーのセットアップ時に、サブツリーはデフォルトで LDAP リポジトリーのルートになり、これが検索開始点となります。この結果、ルート・ベース検索が行われます。リポジトリーでルート・ベース検索がサポートされていない場合、JNDI 検索を実行すると NameNotFoundException が発生し、さらにこれが原因で Virtual member manager が例外をスローします。
Virtual member manager で LDAP リポジトリーを構成するときに、LDAP サーバー検索ルートを設定します。
LDAP リポジトリーでルート・ベース検索がサポートされていない場合は、WebSphere Application Server 管理コンソールの「リポジトリー参照の設定 (Repository reference settings)」ページの「このリポジトリー内の基本項目の識別名 (Distinguished name of a base entry in this repository)」を空白のままにしないでください。
これらの設定へのアクセス方法については、WebSphere Application Server インフォメーション・センターの「リポジトリー参照の設定」を参照してください。