|
|
|
왜 db connection을 얻을 때 context에서 datasource를 context lib 에 jdbc lib 를 놓으면 되지 않은 것일까?
분류없음 |
2010/01/18 18:13
|
|
|
tomcat 5 에서 datasource를 이용해서 JDBC를 사용할 때 {catalina.HOME}/common/lib 에 놓아야만 정상적으로 DB에 접근할 수 있을까? 왜 context.HOME/web-inf/lib 에 jdbc lib 를 놓으면 classNotFound Exception 이 나오는 것일까? 에 대한 해답입니다. 1. tomcat classloader relation
 | Bootstrap | System | Common / \ Catalina Shared / \ Webapp1 Webapp2 ...
|  |  |  |  |
2.class relation 에서 적용되는 class 위치는 다음과 같습니다. Bootstrap-System-Common --> {catalina.HOME}/common/lib, 시스템 classpath Webapp1, Webapp2-->context.HOME/web-inf/lib 3. datasource가 context.xml의 설정을 통해서 실행될 때 적용 되는 class path는 Bootstrap-System-Common 입니다. 이 때 jdbc lib 가 context.HOME/web-inf/lib 에만 저장되어 있을 때는 접근할 수 없는 것이지요. 하지만 context를 통해서 접근하지 않고 JSP 상에서 직접 JDBC에 접촉하면 context.HOME/web-inf/lib 에 jar를 놓아 두어도 ClassNotFoundException은 발생하지 않습니다.
관련된 source는 첨부
|
낭만고양이
2010/01/18 18:13
2010/01/18 18:13
|
|
| 이 글의 관련글(트랙백) 주소 :: http://epr.pe.kr/tc/epr/trackback/32 |
|
|
|
|
| Web 개발자 입니다.<br/>
그러나 기술보다는 사람에 관심이 더 많습니다. <br/>
기술적인 글보다는 그간 읽은 인문학 서적에 대한 서평을 적습니다. |
«
2012/02
»
| 일 |
월 |
화 |
수 |
목 |
금 |
토 |
| |
|
|
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 |
|
|
|
|
|
Total : 51378
Today : 42
Yesterday : 90 |
|
|
빼꼼이 보기 - 최근 댓글
2010 - 낭만고양이
2010 - 이명호
2010 - 이명호
2010 - 이명호
2010 - 비밀방문자