# javax.naming

***

**1. Retrieve a Context object and display its environment**

```java
import javax.naming.*;
import javax.naming.ldap.*;

public class GetContext {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Get the environment from the Context
            Hashtable<?, ?> env = ctx.getEnvironment();

            // Print the environment
            for (Enumeration<?> e = env.keys(); e.hasMoreElements();) {
                Object key = e.nextElement();
                Object value = env.get(key);
                System.out.println(key + ": " + value);
            }
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**2. Lookup a single object**

```java
import javax.naming.*;

public class Lookup {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Lookup the object
            Object obj = ctx.lookup("java:comp/env/jdbc/DataSource");

            // Print the object
            System.out.println(obj);
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**3. Lookup multiple objects**

```java
import javax.naming.*;
import java.util.*;

public class LookupMultiple {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Lookup the objects
            Hashtable<?, ?> env = ctx.getEnvironment();
            Enumeration<?> keys = env.keys();
            while (keys.hasMoreElements()) {
                Object key = keys.nextElement();
                Object value = env.get(key);
                System.out.println(key + ": " + value);
            }
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**4. Create an object**

```java
import javax.naming.*;
import javax.naming.directory.*;
import java.util.Hashtable;

public class CreateObject {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Create a new object
            Hashtable<String, Object> env = new Hashtable<>();
            env.put("cn", "New Object");
            DirectoryContext obj = ctx.createSubcontext("ou=NewOrg", env);

            // Print the object
            System.out.println(obj);
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**5. Modify an object**

```java
import javax.naming.*;
import javax.naming.directory.*;
import java.util.Hashtable;

public class ModifyObject {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Lookup the object
            DirectoryContext obj = (DirectoryContext) ctx.lookup("ou=NewOrg");

            // Modify the object
            Hashtable<String, Object> mods = new Hashtable<>();
            mods.put("description", "Modified Description");
            obj.modifyAttributes(obj.getNameInNamespace(), mods);

            // Print the object
            System.out.println(obj);
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**6. Rename an object**

```java
import javax.naming.*;

public class RenameObject {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Rename the object
            ctx.rename("ou=OldOrg", "ou=NewOrg");
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**7. Delete an object**

```java
import javax.naming.*;

public class DeleteObject {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Delete the object
            ctx.destroySubcontext("ou=NewOrg");
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**8. List objects in a context**

```java
import javax.naming.*;
import java.util.*;

public class ListObjects {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // List the objects
            Enumeration<?> list = ctx.list("ou=NewOrg");
            while (list.hasMoreElements()) {
                Object obj = list.nextElement();
                System.out.println(obj);
            }
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**9. Search for objects**

```java
import javax.naming.*;
import javax.naming.directory.*;
import java.util.Hashtable;

public class SearchObjects {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Search for the objects
            Hashtable<String, Object> env = new Hashtable<>();
            env.put("searchBase", "ou=NewOrg");
            env.put("searchFilter", "(objectClass=*)");
            DirContext obj = new InitialDirContext(env);
            NamingEnumeration<?> list = obj.search("", "(objectClass=*)", null);

            // Print the objects
            while (list.hasMore()) {
                SearchResult result = (SearchResult) list.next();
                System.out.println(result);
            }
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**10. Bind an object to a context**

```java
import javax.naming.*;

public class BindObject {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Bind the object
            ctx.bind("ou=NewOrg", new Object());
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**11. Unbind an object from a context**

```java
import javax.naming.*;

public class UnbindObject {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Unbind the object
            ctx.unbind("ou=NewOrg");
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**12. Rebind an object in a context**

```java
import javax.naming.*;

public class RebindObject {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Rebind the object
            ctx.rebind("ou=NewOrg", new Object());
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}
```

**13. Lookup a reference**

```java
import javax.naming.*;
import javax.naming.ldap.*;
import java.util.Hashtable;

public class LookupReference {
    public static void main(String[] args) {
        try {
            // Create an initial context
            Context ctx = new InitialContext();

            // Lookup the reference

```
