WebLogic 기동 시 WebLogic에서 Classloader order 는 아래와 같다.
os -> jvm -> WLS -> app
weblogic application 배포 시 app의 lib을 loader 하지 않고 wls 에 있는 lib을 먼저 loader 하여 app의 다른 lib와의 호환성 문제로 배포가 실패 되는 경우가 종종 있다.
weblogic version이 낮은 경우 weblogic.xml 에서 아래와 같은 방식으로 설정을 변경해주면 된다.
. <container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor> . |
해당 옵션은 classloader 순서를 다음과 같이 변경해준다.
os -> jvm -> app -> WLS
참고)
prefer-web-inf-classes 설정한 경우
java*, javax*, java.xml*, weblogic*의 class 파일이 일관되게 사용되지 않을 수 있다.
weblogic version이 최신 일 경우 weblogic.xml 에서 아래와 같은 방식으로 설정을 변경해주면 된다.
(예시, 아래 설명 참고해야함)
<?xml version="1.0" encoding="UTF-8"?> <weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"> <container-descriptor> <prefer-web-inf-classes>false</prefer-web-inf-classes> <prefer-application-packages> <package-name>javax.faces.*</package-name> <package-name>com.sun.faces.*</package-name> <package-name>com.bea.faces.*</package-name> </prefer-application-packages> <prefer-application-resources> <resource-name>javax.faces.*</resource-name> <resource-name>com.sun.faces.*</resource-name> <resource-name>com.bea.faces.*</resource-name> <resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name> </prefer-application-resources> </container-descriptor> </weblogic-web-app> |
prefer-application-packages 및 prefer-application-resources 사용 시 조건이 필요하다.
1. prefer-web-inf-classes 설정 값이 "false" 이어야 한다.
# prefer-application-packages 은 항상 애플리케이션에서 로드해야 하는 클래스의 패키지 목록을 지정한다.
특정 packages에 대해 classloader order 순서는 os -> jvm -> app -> wls 이다.
# prefer-applicatoin-resources 은 리소스가 시스템 클래스 로더에 있는 경우에도 애플리케이션에서 항상 로드되어야 하는 리소스 목록을 지정하는 옵션으로 path을 이용해 지정하려는 resources를 선택 할 수 있다.
특정 class에 대해 classloader order를 app -> os -> jvm -> wls 이다.
'Oracle Fusion Middleware > WebLogic' 카테고리의 다른 글
[WebLogic] Window Service 기동 시 ClassNotdefFound Error (0) | 2022.11.30 |
---|---|
[보안취약] WebLogic Log4j 보안 조치 (0) | 2022.10.12 |
[WebLogic] Window Service 설정 변경하기 (0) | 2022.08.31 |
[WebLogic] Window Servcie 등록하기 (0) | 2022.08.31 |
[WebLogic] DataFormat Patten 변경하기 (0) | 2022.02.23 |