728x90
반응형

개발환경
OS : Window XP SP3
WAS : Tomcat 6.0
DB : Oracle
Tool : Eclipse

위 환경에서 JNDI를 설정하는 방법을 알아보겠다. (조금 고생하였다. 이런 것이 노하우이리라.)
※ Eclipse에 Tomcat6 setting에 대해서는 언급하지 않겠다.
※ WEB-INF > lib 폴더에 commons-collections-3.2.1.jar, commons-dbcp-1.3.jar, commons-pool-1.5.5.jar 파일 추가 요망. ( 없을 경우에는 www.apache.org 에서 다운로드 하세용~^^ )

이클립스에 서버환경을 세팅하면 디렉토리가 다음과 같은 형태가 될 것이다. ( 프로젝트 이름은 apollo로 명칭하겠다. )
- apollo
  └ + Deployment Descriptor : apollo
  └ + Java Resources : src
  └ + JavaScript Resources
  └ - WebContent
      └ - META-INF
          └ context.xml (추가할 항목) ③
          └ MANIFEST.MF
      └ - WEB-INF
          └ + classes
          └ + lib
          └ + src
          └ web.xml (수정할 항목) ②
      └ dbTest.jsp (추가할 항목)
- Servers
  └ - Tomcat v6.0 Server at localhost-config
      └ apollo.xml (추가할 항목) ④
      └ catalina.policy
      └ catalina.properties
      └ context.xml (수정할 항목) ①
      └ server.xml
      └ tomcat-users.xml
      └ web.xml

① context.xml 수정
   context.xml 파일을 열어서 <Context></Context> 태그 안에 다음의 태그를 넣어라.
   ( 저의 경우 리소스명을 jdbc/testDB 를 입력하였습니다. )
<Resource name="리소스명" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="DB url 주소"
              username="아이디" password="패스워드" maxActive="20" maxIdle="10"
              maxWait="-1"/>

② web.xml 수정
   <web-app></web-app> 태그 안에 다음의 내용을 적당한 자리에 입력한다.
    <!-- JNDI Setting -->
    <resource-ref>
        <res-ref-name>jdbc/horn</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>

③ context.xml 추가
   META-INF 폴더 안에 context.xml에 방금 넣었던 내용을 추가한다. 내용 추가는 다음과 같다.
<?xml version="1.0" encoding="UTF-8"?>
< Context>
    <Resource name="리소스명" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="DB url 주소"
              username="아이디" password="패스워드" maxActive="20" maxIdle="10"
              maxWait="-1"/>
< /Context>

④ apollo.xml 추가
   Servers > Tomcat v6.0 Server at localhost-config 아래에 프로젝트명 ( 여기서는 apollo ) 으로 XML을 추가한다. 내용은 META-INF > context.xml 내용과 같다.
<?xml version="1.0" encoding="UTF-8"?>
< Context>
    <Resource name="jdbc/horn" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@65.251.1.35:1523:horn"
              username="seccadm" password="roqkf21" maxActive="20" maxIdle="10"
              maxWait="-1"/>
< /Context>

⑤ dbTest.jsp 추가
   테스트를 해보자.
<%@ page import="java.sql.*" %>
< %@ page import="javax.sql.*" %>
< %@ page import="javax.naming.*" %>
< %
    try{
       Context context = new InitialContext();
       DataSource ds = (DataSource)context.lookup("java:/comp/env/jdbc/horn");
       Connection conn = ds.getConnection();
       System.out.println("연결성공");
    } catch(Exception e){
       System.out.println("연결실패");
       System.out.println(e.toString());
    }
%>

결과 : 연결성공


참고사이트
  1. Tomcat6 + Oracle JNDI 설정방법 ( http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html )
  2. Cannot create JDBC driver of class '' for connect URL 'null' Error 해결 방법 ( http://threebit.net/mail-archive/tomcat-users/msg00160.html )
728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,