2013-07-18 5 views
0
  • Я могу получить результат при выполнении следующего кода, но я хочу сохранить член группы в массиве строк, но я этого не делаю. Я новичок в java, может кто-нибудь мне помочь.
  • следующий кодКак сохранить член группы в строке Array

    System.out.println(" Person Common Name = " + attributes.get("member")+"\t");

    способен дать мне член группы, но я хочу сохранить его в массив String.

Заранее благодарен.

package com.ankit.ldap; 

    import javax.naming.Context; 
    import javax.naming.NamingEnumeration; 
    import javax.naming.directory.*; 
    import java.util.Hashtable; 

    /** 
    * User: gmc 
    * Date: 16/02/11 
    */ 
    public class SimpleQuery { 

     public static void main(String[] args) { 
      String userName = "xxxxxxxxxxxxxxxxx"; 
      Hashtable env = new Hashtable(); 
      env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
      env.put(Context.PROVIDER_URL, "xxxxxxxxxxxxxxx"); 
      env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
      env.put(Context.SECURITY_PRINCIPAL, new String(userName)); 
      env.put(Context.SECURITY_CREDENTIALS, "xxxxxx"); 

      DirContext ctx = null; 
      NamingEnumeration results = null; 
      try { 
       ctx = new InitialDirContext(env); 
       SearchControls controls = new SearchControls(); 
       controls.setSearchScope(SearchControls.SUBTREE_SCOPE); 
       results = ctx.search("", "(cn=CompetencyGroup)", controls); 
       while (results.hasMore()) { 
        SearchResult searchResult = (SearchResult) results.next(); 
        Attributes attributes = searchResult.getAttributes(); 
        Attribute attr = attributes.get("cn"); 
        String cn = (String) attr.get(); 
        System.out.println(" Person Common Name = " + attributes.get("member")+"\t"); 
        System.out.println(" Person Display Name = " + attributes.get("displayName")); 

        System.out.println(" Person MemberOf = " + attributes.get("memberOf")); 
       } 
      } catch (Throwable e) { 
       e.printStackTrace(); 
      } finally { 
       if (results != null) { 
        try { 
         results.close(); 
        } catch (Exception e) { 
        } 
       } 
       if (ctx != null) { 
        try { 
         ctx.close(); 
        } catch (Exception e) { 
        } 
       } 
      } 
     } 
    } 
+0

Вы хотите сохранить его в определенном массиве String? Вы объявили массив String? Вы что-то пробовали и получили сообщение об ошибке, или пытаетесь ли вы иметь какой-то эффект, который вы не знаете, как это сделать (и не сказали нам)? Вы не дали достаточно информации для нас, чтобы знать, как вам помочь. – arcy

+0

Я не понимаю, как вы можете получить доступ к этому атрибуту, а где проблема, с которой вы сталкиваетесь, сохраняя ее в 'String array'? – Smit

ответ

0

Если вы просто хотите сохранить массив строк, не зная, количество строк для хранения использовать ArrayList.

//create the arraylist 
ArrayList<String> memberNames = new ArrayList<String>(); 
// add the memeber name to the array 
memberNames.add(attributes.get("member")); 
+0

Я пробовал следующий код, но я получаю следующую ошибку: Метод add (String) в типе ArrayList не применим для аргументов (Attribute) – user1241042

+0

Вызов атрибута.get ("member") не должен возвращаться строка. Имеет ли это? – ChadNC