2016-10-19 6 views
0

私は1つのeDirectoryを持っています。 Javaを使用して属性値を更新する必要があります。このために私は以下のコードを使用しています。Java数値列型をアップデートするLDAP:エラーコード17 - 未定義属性タイプ

public void updateEntry(User_Objects req) { 
    try { 
     propFile = LoadProp.getProperties(); 

     Properties properties = new Properties(); 
     properties.put(Context.INITIAL_CONTEXT_FACTORY, propFile.getProperty(Constants.INITIAL_CONTEXT_FACTORY)); 
     properties.put(Context.PROVIDER_URL, propFile.getProperty(Constants.PROVIDER_URL)); 
     properties.put(Context.SECURITY_PROTOCOL, propFile.getProperty(Constants.SECURITY_PROTOCOL)); 
     properties.put(Context.SECURITY_PRINCIPAL, propFile.getProperty(Constants.SECURITY_PRINCIPAL)); 
     properties.put(Context.SECURITY_CREDENTIALS, propFile.getProperty(Constants.SECURITY_CREDENTIALS)); 

     DirContext context = new InitialDirContext(properties); 
     String valAttrXYZ = "123"; 

     boolean status = false; 
     status = UpdateIntoLdap(context, req.getUserDN(), "givenName", req.getFirstName()); 
     status = UpdateIntoLdap(context, req.getUserDN(), "attrXYZ", valAttrXYZ); 
    } catch (NamingException e) { 
    } catch (Exception e) { 
    } 
} 

public boolean UpdateIntoLdap(DirContext context, String userDN, String attName, String value) { 
    boolean status = true; 
    try { 
     if (value != null) { 
      Attributes att = context.getAttributes(userDN); 
      String attValue = displayAttributes(att, attName); 
      Attribute mod0 = new BasicAttribute(attName, value); 
      ModificationItem[] item = new ModificationItem[1]; 

      if (attValue.equals("error")) { 
       Attributes attributes = context.getAttributes(userDN); 
       item[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE, mod0); 
       attributes.put(mod0); 
       context.modifyAttributes(userDN, item); 
      } else { 
       item[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod0); 
       context.modifyAttributes(userDN, item); 
      } 
     } else { 
      status = false; 
     } 
    } catch (NamingException e) { 
     status = false; 
    } catch (Exception e) { 
     status = false; 
    } 
    return status; 
} 

私は成功しgivenName属性をupadateが、問題はattrXYZ属性を更新上にある、それは次のようなエラー「をattrXYZ」の

javax.naming.directory.InvalidAttributeIdentifierException: [LDAP: error code 17 - Undefined Attribute Type]; remaining name 'cn=user01,ou=users,o=data' 

属性タイプを与え、私もInteger.parseInt(valFaxExt)が、同じエラーをしてみてくださいNumeric String です。

私はEclipseでJavaを使用しています。

答えて

0

このエラーは、eDirectoryディレクトリサーバーによって報告され、属性 "attrXYZ"がサーバーのスキーマに定義されていないことを意味します。

関連する問題