본문 바로가기
WAS/WEBLOGIC

22. classpath 추가

by coldplayer83 2023. 7. 13.
728x90

웹로직 JVM 환경에서 어플리케이션이 요구하는 클래스나 라이브러리의 클래스패스 설정이 요구되는 경우

 

클래스로더는 기본적으로 어플리케이션 내부 ${APP_HO0ME}/WEB-INF/classes나 ${APP_HOME}/WEB-INF/lib와 같은 디렉토리에 필요한 클래스와 라이브러리를 위치시킴

클래스패스가 읽히는 순서는 OS > JVM > WLS > APP 순이기 때문에 어플리케이션이 요하는 클래스의 우선수위가 밀려나게 된다.

이 경우 어플리케이션이 요구하는 클래스나 라이브러리를 우선하기 위해 classpath를 지정 

 

8.1 이상)

서버 기동 스크립트에서 classpath 변수를 선언 후 추가하고자 하는 클래스 경로를 작성

각각의 클래스는 콜론(:)으로 구분 (UNIX/LINUX)

 

linux)

#classpath (기존 클래스패스 뒤에 설정하는 경우)
CLASSPATH="${CLASSPATH}:추가할클래스01:추가할클래스02:추가할클래스03"

#classpath (기존 클래스패스에 우선하여 설정하는 경우)
CLASSPATH="추가할클래스01:추가할클래스02:추가할클래스03:${CLASSPATH}"

#export
export CLASSPATH

※ UNIX/LINUX 환경일 경우 기동 스크립트에 export CLASSPATH는 필수로 작성하지 않아도 됨

=> 최종적으로 setDomainEnv.sh에서 export CLASSPATH를 실행하기 때문

 

window)

각각의 클래스는 세미콜론(;)으로 구분 (window)

set CLASSPATH=추가할클래스01;%CLASSPATH%
set CLASSPATH=%CLASSPATH%;추가할클래스01

 

9.0 이상)

서버 기동 스크립트에 작성

CLASSPATH 대신 EXT_PRE_CLASSPATH 또는 EXT_POST_CLASSPATH 사용

EXT_PRE_CLASSPATH : 기존 클래스패스에 우선하여 설정하는 경우

(default로 설치된 웹로직 모듈모다 먼저 로드되도록 함)

EXT_POST_CLASSPATH : 기존 클래스패스 뒤에 설정하는 경우

각각의 클래스는 콜론(:)으로 구분

 

linux)

#classpath
EXT_PRE_CLASSPATH="$EXT_PRE_CLASSPATH:추가할클래스01:추가할클래스02:추가할클래스03"

EXT_POST_CLASSPATH="$EXT_POST_CLASSPATH:추가할클래스01:추가할클래스02:추가할클래스03"

 

window)

set EXT_PRE_CLASSPATH="추가할클래스01"
set EXT_POST_CLASSPATH="추가할클래스01"

 

설정 후 ${DOMAIN_HOME}/bin/setDomainEnv.sh의 CLASSPATH 설정 조건문에 따라 다음과 같은 순서로 선언된다

EXT_PRE_CLASSPATH:PRE_CLASSPATH:WEBLOGIC_CLASSPATH:POST_CLASSPATH:EXT_POST_CLASSPATH:CLASSPATH


 

ex) 기존에 사용중인 ojdbc.jar 대신 다른 버전의 ojdbc.jar를 로드해야 하는 경우

1) {DOMAIN_HOME}/lib에 로드할 ojdbc6.jar 추가

2) 서버 기동 스크립트에 아래 내용 추가

EXT_PRE_CLASSPATH="${EXT_PRE_CLASSPATH}:/.../ojdbc6-11.2.0.4.jar"
export EXT_PRE_CLASSPATH

3) 서버 기동시 로그에서 해당 ojdbc6.jar 파일이 가장 먼저 로드된 것을 확인할 수 있음

 

!!

{DOMAIN_HOME}/lib 경로에 모듈을 위치시키면 웹로직에서 서버 기동시 자동으로 클래스패스 맨 뒤에 모듈을 로딩하게 됨

EXT_PRE_CLASSPATH 옵션 사용으로 클래스패스 맨 뒤가 아닌 가장 먼저 로드하도록 설정하는 구조

 


 

추가로 기동 스크립트가 아닌 oracle_common/common/bin/commExtEnv.sh 스크립트를 수정하여 클래스패스를 추가해놓은 경우가 있음

oracle_common 디렉토리는 웹로직 서버 라이브러리 디렉토리로 해당 디렉토리 하위에서 수정 작업을 하게 되면 추후 서버 패치 적용시 에러 발생 가능성이 있음

따라서 commExtEnv.sh 파일의 수정은 권장하지 않는다

 

참고 : https://hyuunchul.tistory.com/m/123

'WAS > WEBLOGIC' 카테고리의 다른 글

24. 12c window 설치 및 구성(GUI)  (0) 2024.03.07
23. 12c 마이너 버전 도메인 업그레이드  (0) 2024.03.07
21. ssl 설정  (1) 2023.07.13
20. weblogic 버전 확인  (0) 2023.07.12
19. weblogic.xml  (0) 2023.07.12