출처 : http://copyrightdj.tistory.com/68
개발환경
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
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 를 입력하였습니다. )
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"/>
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> 태그 안에 다음의 내용을 적당한 자리에 입력한다.
③ context.xml 추가
META-INF 폴더 안에 context.xml에 방금 넣었던 내용을 추가한다. 내용 추가는 다음과 같다.
④ apollo.xml 추가
Servers > Tomcat v6.0 Server at localhost-config 아래에 프로젝트명 ( 여기서는 apollo ) 으로 XML을 추가한다. 내용은 META-INF > context.xml 내용과 같다.
⑤ dbTest.jsp 추가
테스트를 해보자.
참고사이트
<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>
<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>
<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>
<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());
}
%>
결과 : 연결성공
<%@ 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());
}
%>
결과 : 연결성공
참고사이트
- Tomcat6 + Oracle JNDI 설정방법 ( http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html )
- Cannot create JDBC driver of class '' for connect URL 'null' Error 해결 방법 (http://threebit.net/mail-archive/tomcat-users/msg00160.html )
'JSP > JNDI' 카테고리의 다른 글
NAame jdbc is not bound in this Context 참고자료 2 (0) | 2015.11.19 |
---|