質問

LdapTemplate に使用春LDAPで、私はこのコードを持っています:

Object object=null;
try{
    String dn = "cn=readers,ou=groups,dc=mycompany, dc=com";
    object = this.ldapTemplate.lookup(dn);
} catch(final NameNotFoundException e){
    // create Object
}

しかし、私は私のジョシュア・ブロック、私は例外は、制御フローのために使用すべきではないことを知って読んだからです。それがない場合は、例外をスローせずに存在しているかどうかを確認するために、DNを検索する方法はありますか?なければなりませんが、私はそれを見つけることができません。私はこの(または類似)のように動作するコードを探しています:

String dn = "cn=readers,ou=groups,dc=mycompany, dc=com";
Object object=this.ldapTemplate.someMethod(dn);
if(object==null){
    // create Object
}

缶誰ヘルプ?

ところで:ちょうどのJavaDocを見てすることは助けにはなりません。スローNameNotFoundExceptionはJavaDocsの中でそう言うことの方法のいずれます。

役に立ちましたか?

解決

lookup()方法は、あなただけはDNが存在することを確実に知っているときに使用されるようになっています。これは、あなたが検索し、以前にユーザーまたはグループを見つけ、そしてDNは、サーバから返されたキャッシュされたので、通常である。

あなたがかもしれないが、そこではないかもしれないか、ということな何かを探しているなら、

は、使用する権利APIはldapTemplate.search()は、適切なフィルタを用いて、あります。これは、結果のリストを返し、何結果は、それがむしろ例外をスローより空のリストを返す見つからない場合には

他のヒント

実際には、春には(すなわち、それはあなたのせいではありません、それは彼らの決定だ)フロー制御のために使用する例外にここであなたを強制ます。

私は数ヶ月前にLdapTemplateで働いていたと私はより良いものを見つけることができませんでした、その例外をキャッチし、「ユーザーが見つかりません」というように、その状況を評価します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top