Я хочу выбрать (выполнить поиск) любые данные на моем сервере LDAP.
У меня есть соединение, но я не знаю, как получить какие-либо данные.
Может кто-нибудь дать совет, чтобы я мог видеть что-либо, например данные?
Проблема:
Когда я запускаю следующий код, я получаю:
Исключение в потоке "main" java.lang.ClassCastException: com.sun.jndi.ldap.LdapCtx не может быть приведено к javax.activation.DataSource`
Что я пробовал?
Источник данных имеет два импорта:
- 1) javax.sql
- 2) javax.activation
Я изменил другой импорт, но не работал.
Мой еще один вопрос: "Эти два импорта одинаковы?"
Исходный код:
public class LDAPJndi {
//JNDI API를 사용하여 서버와 연결 (Connecting to LDAP server using JNDI)
public static DirContext connectJndi() throws NamingException {
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://192.168.0.60:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=govmanager");
env.put(Context.SECURITY_CREDENTIALS, "GOVmoi!manager");
DirContext ctx = new InitialDirContext(env);
return ctx;
}
public static void lookupJndi() throws NamingException {
// a method for looking up any data
DirContext ctx = connectJndi();
Object o = ctx.lookup("c=kr");
System.out.println(o);
//above didn't work, so tried the bottom
DataSource dataSource = (DataSource) ctx.lookup("c=kr"); //c=kr is BaseDN
System.out.println(dataSource);
}
}