JAVA JNDI를 이용한 DNS 서비스 구현
JNDI란 자바로 만들어진 프로그램이 Naming 및 Directory 서비스에 접근할 수 있도록 제공되는 API 입니다.
즉 자바 응용 프로그램이 어느 위치에 있든지 필요한 자바 객체들을 검색할 수 있는 것입니다. EJB 환경에서는 JNDI를 이용해 EJB Home 객체를 얻어낸 후 이를 이용해 Java Beans 객체를 생성하거나 접근하게 됩니다.
JNDI는 DNS(Domain Name System), COS(Common Object Services) 등의 네이밍 서비스 표준과 LDAP(Lightweight Directory Access Protocol), NDS(NetWare Directory Service), NIS(Netware Information System) 등 API를 제공 합니다.
참고로 JDK1.4 부터는 JNDI 서비스 프로바이더에 DNS Service Provoder를 제공하여 DNS 서비스를 통해 네이밍 서비스를 받을 수 있도록 지원 했는데 아래는 그 예제 입니다.
아래예제는 www.onjprogramming.co.kr에 대한 DNS 서비스를 받아 오는 예제 입니다.
import java.util.Hashtable;
import javax.naming.directory.*;
import javax.naming.NamingEnumeration;
public class JNDIExample {
public static void main(String[] args) {
Hashtable h = new Hashtable();
h.put("java.naming.factory.initial","com.sun.jndi.dns.DnsContextFactory");
h.put("java.naming.provider.url","dns://ns.dacom.co.kr");
try {
//DirContext 초기화
DirContext context = new InitialDirContext(h);
//DNS질의 결과를 받아 오자...
Attributes attribute = context.getAttributes("www.onjprogramming.co.kr");
//질의 결과 출력
NamingEnumeration ne = attribute.getAll();
System.out.println("www.onjprogramming.co.kr --> ");
while(ne.hasMoreElements()) {
System.out.println(ne.next());
}
}
catch(Exception e) {
e.printStackTrace();
}
}
}
Hashtable h = new Hashtable();
h.put("java.naming.factory.initial","com.sun.jndi.dns.DnsContextFactory");
h.put("java.naming.provider.url","dns://ns.dacom.co.kr");
try {
//DirContext 초기화
DirContext context = new InitialDirContext(h);
//DNS질의 결과를 받아 오자...
Attributes attribute = context.getAttributes("www.onjprogramming.co.kr");
//질의 결과 출력
NamingEnumeration ne = attribute.getAll();
System.out.println("www.onjprogramming.co.kr --> ");
while(ne.hasMoreElements()) {
System.out.println(ne.next());
}
}
catch(Exception e) {
e.printStackTrace();
}
}
}
[결과]
java.sun.com -->
A: 209.249.116.141
java.sun.com -->
A: 209.249.116.141
오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)
[개강확정강좌]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주말]
[10/26]C#,ASP.NET마스터
[10/26]Spring3.X, MyBatis, Hibernate실무과정
[10/27]JAVA&WEB프레임워크실무과정
[평일야간]
[10/17]SQL초보에서실전전문가까지
[10/22]자바초보에서안드로이드까지
[10/25]C#,ASP.NET마스터
[10/25]Spring3.X, MyBatis, Hibernate실무과정
[주간]
[10/21]Spring3.X, MyBatis, Hibernate실무과정
[주말]
[10/26]C#,ASP.NET마스터
[10/26]Spring3.X, MyBatis, Hibernate실무과정
[10/27]JAVA&WEB프레임워크실무과정
[평일야간]
[10/17]SQL초보에서실전전문가까지
[10/22]자바초보에서안드로이드까지
[10/25]C#,ASP.NET마스터
[10/25]Spring3.X, MyBatis, Hibernate실무과정
[주간]
[10/21]Spring3.X, MyBatis, Hibernate실무과정
댓글 없음:
댓글 쓰기