2014-12-18 1 views
0

JNDI를 사용하여 응용 프로그램에서 사용하려는 객체를 가져오고 그 능력을 알 수있는 이유를 이해하고 있습니다. 하지만 제 질문은 Tomcat이나 Jboss가이 기능을 어떻게 구현합니까?코어 자바를 사용하여 메커니즘 JNDI를 구현하는 방법?

내게는 다음과 같이 구현하기 위해 소켓을 사용 기회를 제공 한 경우 :

Client side: 
Socket socket = new Socket("localhost",10000); 
//get a Person Object 
socket.write("JNDI/Person") 


Server side : 
ServerSocket socketServer = new ServerSocket("localhost", 10000); 
string str= socket.read(); 
if(str.equals("JNDI/Person")){ 
    //ok I return back you a Person object. 

socketServer.write(new Person()); 
} 

내가 올바르지 또는 위의 초안이 방법이고 사람이 톰캣 /제이 보스 또는 다른 컨테이너가 구현이 얼마나 말해 줄 수를 JNDI. 미리 감사드립니다.

+0

오픈 소스 소프트웨어의 장점에 대해 들어 봤습니까? ;-) – Smutje

답변

1

제이 보스 (JBoss) 나 톰캣 (Tomcat)에서 어떻게 작동하는지 말할 수는 없지만 구현하기가 쉽습니다. 간단한 논리 다음에 오브젝트를 저장하려면 ConcurrentHashMap을 사용하십시오. 모든 객체에 대한 액세스 시간은 대략 O (1)로 룩업에 적합합니다. 해시 테이블은 실행중인 응용 프로그램의 모든 부분에서 액세스 할 수있는 정적 클래스 필드로 구현할 수 있습니다. 여기에서

:

http://docs.oracle.com/javase/7/docs/api/javax/naming/package-summary.html

. "컨텍스트,보고, 바인딩, 바인딩 해제, 및 오브젝트 이름을 바꾸는 생성 및 서브 컨텍스트를 파괴의 핵심 인터페이스이다" 실제로, HashMaps의 모든 기본 조작을 제공합니다. 다른 모든 것은 확장 일뿐입니다.

보너스로 주석 처리 된 행 대신 LOC가 하나만 필요합니다.

+0

귀하의 의견을 주셔서 감사합니다,하지만 난 그냥 물건에 소켓 또는 다른 기술을 사용하여 전송하는 두 개의 다른 JVM을 어떻게하고 싶습니다? – user917879

관련 문제