달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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
Posted by tornado
|