전자정부 표준프레임워크에서 제공하는
공통컴포넌트 3.7의 신규 개선 50종을 실행하였는데
맥OS에서 오류가 발생하였다.
java라는 플랫폼이 OS의 종류에 상관없이 실행되어야 맞는데
외 그럴까?
공통컴포넌트가 OS에 의존적인부분은 없을텐데 의아했다.
테스트 하면서 Bean의 구동 초기화 순서에 따라 오류가 날수 있다는걸 알게되었다.
* 설정은 모두 정상이나 batchScheduler부분에서 오류가 나는게 확인된다. ㅜㅠ
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'batchScheduler' defined in file [/EGOV/eclipse-jee-neon/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/egovframework-all-in-one-AllNew/WEB-INF/classes/egovframework/spring/com/scheduling/context-scheduling-sym-bat.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
결론적으로 다음경로의 빈설정이 먼저 초기화 되어야 한다.
classpath*:egovframework/spring/com/context-*.xml
그외에 빈들은 나중에 초기화 되는 전략을 시도한다.
다음 WebApplicationInitializer 파일의 정보를 수정한다.
src/main/java/egovframework/com/cmm/config/EgovWebApplicationInitializer.java
* 변경전
XmlWebApplicationContext rootContext = new XmlWebApplicationContext();
rootContext.setConfigLocations(new String[] { "classpath*:egovframework/spring/com/**/context-*.xml" });
rootContext.refresh();
rootContext.start();
* 변경후
XmlWebApplicationContext rootContext = new XmlWebApplicationContext();
rootContext.setConfigLocations(new String[] { "classpath*:egovframework/spring/com/context-*.xml","classpath*:egovframework/spring/com/*/context-*.xml" });
rootContext.refresh();
rootContext.start();
정상적으로 기동이 되었다.
참고로 공통컴포넌트 V3.7 신규 50종은 맥OS에서 정상적으로 구동이 되었다.
* 들리는 얘기로는 이런 초기 구동 오류 증상은 OpenJDK를 사용할때도 발생할때가 있다고 한다.
그리고 맥OS의 Java Version은 1.8이며 Oracle JDK를 사용하였다.

'전자정부표준프레임워크' 카테고리의 다른 글
표준프레임워크 v4.0 scribejava Kakao OAuth Login API 오류 수정하기 (0) | 2022.08.29 |
---|---|
Spring Boot에서 jar 배포시 jsp 동작하지 않을때 (0) | 2022.08.10 |
[전자정부 표준프레임워크] No bean named 'springSecurityFilterChain' is defined 해결방법 (0) | 2019.01.07 |
macOS에서 전자정부 표준프레임워크 공통컴포넌트(v3.7 251종 구버전) 오류 날때 구동하는 방법 (0) | 2018.08.02 |
전자정부 표준프레임워크 3.1 기반 모바일 웹 매핑 솔루션 (0) | 2015.10.15 |