개인 저장용 블로그

[WebLogic] Window Service 기동 시 ClassNotdefFound Error 본문

Oracle Fusion Middleware/WebLogic

[WebLogic] Window Service 기동 시 ClassNotdefFound Error

우엉잇 2022. 11. 30. 13:44

최근 H 고객사의 프로젝트를 진행하다가 아래와 같은 케이스를 발견하였다. 

 

* 환경 

OS는 Window 2019, WebLogic은 12.2.1.4 이다. (Window OS에서는 발생하는 이슈로 확인되었다.)

 

cmd을 이용하여 WebLogic 기동 시 정상적으로 동작이 되지만 Window Services로 등록한 WebLogic을 기동 할 경우 아래와 같은 메시지가 발생합니다. 

####<2022. 11. 21 오후 2시 48분 02,459초 KST> <Warning> <HTTP> <DESKTOP-0MFLKI2> <M1> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <1c9bbaea-648d-478d-b7d7-b2c9114c02e9-00000009> <1669009682459> <[severity-value: 16] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-101162> <User defined listener org.springframework.web.context.ContextLoaderListener failed: java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException.
java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

NoClassDefFoundError 원인은 컴파일 시 존재했던 Class가 runtime 환경 시 존재하지 않아서 발생하는 에러입니다. 

 

해당 발생 이유로는 WebLogic 에서 Window Service 사용 시 default stack size로는 256k 를 사용하기 때문에 발생하는 에러입니다. cmd 로 기동 시 정상적으로 동작했던 이유는 java의 default stack size가 1024k 였기 때문에 정상적으로 동작하는 것으로 확인 됬습니다. 

 

설정 방법으로는 레지스트리에 해당 cmdline에 아래와 같은 옵션을 적용 시켜주면 됩니다. 

-Xss1024k 

 

* 참고자료 

https://yangbox.tistory.com/117

 

NoClassDefFoundError 발생원인 및 해결(ClassNotFoundException와 차이점)

NoClassDefFoundError 발생원인 및 해결(ClassNotFoundException와 차이점) 일반적으로 NoClassDefFoundError 에러는 컴파일 시점에 존재했던 클래스가 런타임에 존재하지 않으면 발생하는 에러라고 알고 있다. 포

yangbox.tistory.com