728x90

1. CLASSPATH

JSP에서 JDBC를 사용하여 PostgreSQL 데이터베이스에 접속하기 위해서는

Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(%DB 경로,%사용자계정,%사용자비밀번호);


와 같이 접속하게 됩니다.

이 때 Class.forName은 Class 이름을 통하여 Class를 불러오도록 하는 메쏘드로 CLASSPATH 즉 CLASS의 경로로서 지정된 경로에 있는 클래스 파일로부터 클래스를 불러오게 됩니다. CLASSPATH 는 일반 PATH 와는 달리 디렉토리 외에 파일을 지정할수도 있는데, 지정할수 있는 파일의 종류는 \*.jar, \*.zip 등이 있습니다. jar 파일은 class 파일을 묶어서 압축해 놓은 파일로, 이 파일을 CLASSPATH 에 추가 하게 되면 그 파일안에 class 파일을 모두 사용할수 있게 됩니다.

2. Solaris에서 CLASSPATH의 설정

Solaris에서 CLASSPATH의 설정은 다음과 같이 할 수 있습니다.

export CLASSPATH="$CLASSPATH:/usr/postgresql/8.2/jdbc/postgresql.jar"

다음 부팅 시에도 CLASSPATH 적용하고 싶다면

cat export CLASSPATH="$CLASSPATH:/usr/postgresql/8.2/jdbc/postgresql.jar" >> /.profile

등과 같이 .profile의 내용에 추가하여 다음에도 적용될 수 있도록 할 수 있습니다.

3. TOMCAT에서 CLASSPATH의 설정

보통 어플리케이션은 시스템에서 설정한 환경변수를 그대로 따르는 것이 일반적이지만 TOMCAT의 경우는 시스템에 설정된 CLASSPATH를 완전히 무시하는 것으로 되어 있습니다. 따라서 TOMCAT에서의 CLASSPATH 설정은 시스템에서의 환경변수 설정과 별개로 이루어져야 합니다.

TOMCAT에서의 CLASSPATH의 설정은 TOMCAT 설치 디렉토리 내 .../bin/catalina.sh 파일을 수정함으로써 할 수 있습니다.

...

# Add on extra jar files to CLASSPATH
if [ -n "$JSSE_HOME" ]; then
  CLASSPATH="$CLASSPATH":"$JSSE_HOME"/lib/jcert.jar:"$JSSE_HOME"/lib/jnet.jar:"$JSSE_HOME"/lib/jsse.jar
fi
CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/bin/bootstrap.jar:"$CATALINA_HOME"/bin/commons-logging-api.jar
CLASSPATH="$CLASSPATH:/usr/postgres/8.2/jdbc/postgres.jar"

...

다음과 같이 CLASSPATH에 postgres.jar 파일을 추가합니다.
tomcat을 재구동시키면 PostgreSQL 데이터베이스의 JDBC 드라이버인 "org.postgresql.Driver"를 이름을 통하여 불러서 사용할 수 있게 됩니다.

4. WEB-INF/lib 를 이용하는 방법

tomcat을 통해 서비스 되는 웹서비스의 홈디렉토리 아래에는 WEB-INF 라는 특수한 디렉토리가 있습니다. 이 디렉토리 아래에 lib 라는 폴더를 만들어놓고 jar 파일을 넣어두면 CLASSPATH에 경로를 추가하여 jar 파일을 등록하는 것과 마찬가지로 jar 파일을 사용할 수 있습니다.

cp /ust/postgres/8.2/jdbc/postgres.jar /usr/apache/s10ref/web/WEB-INF/lib/postgres.jar

하여 파일을 복사하고 apache를 재시작하면 CLASSPATH를 등록하여 사용한 것과 마찬가지로 "org.postgresql.Driver"를 사용할 수 있습니다.


위 내용은 아래 주소를 참고 하였습니다.
http://blogs.oracle.com/snoopy40/entry/jdbc_%EC%82%AC%EC%9A%A9%EC%9D%84_%EC%9C%84%ED%95%9C_classpath_%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
728x90

+ Recent posts