proxool 커넥션 풀 소스를 보다가... jndi 를 이용하는 다른 방법이 보이길래 끄적여 봄...
http://tyrex.sourceforge.net/ <-- 요기에 보면 여러가지 프로젝들이 보인다..
그중... 설명은 안나온것 같은데.. 톰캣 처럼.. jndi 를 불편하게 사용해야 할 경우(반드시 server.xml 에 적어줘야 하며, 서버 재시작 필요함.. readonly 환경이라 그렇다고 하넹..)
tyrex-naming 을 이용하면 된다....
현재 버젼은 1.0.2 인가 그렇고..
테스트 한 패키지는 1.0.1 이며 naming 관련 부분만 이용했다.
먼저.. 간단한 자바 빈 클래스.. 이 녀석을 jndi 에 등록할것임..
package com.javarush.test;
public class TestBean {
private String print;
public TestBean(){ }
public String getPrint() {
return print;
}
public void setPrint(String print) {
this.print = print;
}
}
-----------------------------------------------
초기화 시켜줄 서블릿...
web.xml 에 당근 등록해야 하고... <load-on-startup>3<load-on-startup> 으로 지정했다.
import java.io.IOException;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.spi.NamingManager;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import tyrex.naming.MemoryContextFactory;
import com.javarush.test.TestBean;
public class InittServlet extends HttpServlet {
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void init() throws ServletException {
String alias = "myAliasName";
String jndiName = "my/testbean";
try{
TestBean bean = new TestBean();
bean.setPrint("HIHI");
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, MemoryContextFactory.class.getName());
env.put(Context.URL_PKG_PREFIXES, "tyrex.naming");
env.put(Context.PROVIDER_URL, alias);
Context context = new InitialContext(env);
context.createSubcontext("my");
context.bind(jndiName, NamingManager.getObjectInstance(bean, null, null, null));
context.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
---------------------------------------------------------------------
Test 용 JSP
<%@ page contentType="text/html; charset=euc-kr"
import = "javax.naming.*, java.util.*, com.javarush.test.*, tyrex.naming.*"
%><%
String alias = "myAliasName";
String jndiName = "my/testbean";
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, MemoryContextFactory.class.getName());
env.put(Context.URL_PKG_PREFIXES, "tyrex.naming");
env.put(Context.PROVIDER_URL, alias);
Context context = new InitialContext(env);
TestBean bean = (TestBean) context.lookup(jndiName);
context.close();
out.print(bean.getPrint());
%>
------------------------------------
첨부된 tyrex-1.0.1_naming.jar 파일은 WEB-INF/lib 에 두고..
실행해 보면
브라우저에 HIHI 가 출력될 것임....
'JAVA > JSP_Servlet' 카테고리의 다른 글
[펌] Opensource Web Grid (0) | 2005.05.30 |
---|---|
[펌] TD 를 에디트 하기 ,,, (0) | 2005.05.13 |
에혀... 문서를 자세히 봐야해... (0) | 2005.05.03 |
이클립스플러긴 (0) | 2005.04.25 |
자바싱글사인온 .. 오오옷~! 함 해봐야쥐 (0) | 2005.04.13 |