jboss 에서 globals.properties 환경변수 인식 못함
- 작성자 :
- 정*천
- 작성일 :
- 2014-11-17 23:54:32
- 조회수 :
- 3,711
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
jboss Was 의 개발 서버에서는 정상적으로 디플로이 되나 운영서버에서 디플로이가 안됩니다.
-- 에러 내용 -
20:37:54,596 ERROR [[/]] Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'dataSource-mysql' defined in
FileHandler@285977445[path=web2014.war/WEB-INF/classes/egovframework/spring/com/context-datasource.xml context=file:/JBOSS/WebApp/deploy/
real=file:/JBOSS/WebApp/deploy/web2014.war/WEB-INF/classes/egovframework/spring/com/context-datasource.xml]: Could not resolve placeholder 'Globals.DriverClassName'
at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.processProperties(PropertyPlaceholderConfigurer.java:287)
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:75)
-- 답변 부탁드립니다.
-- 에러 내용 -
20:37:54,596 ERROR [[/]] Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'dataSource-mysql' defined in
FileHandler@285977445[path=web2014.war/WEB-INF/classes/egovframework/spring/com/context-datasource.xml context=file:/JBOSS/WebApp/deploy/
real=file:/JBOSS/WebApp/deploy/web2014.war/WEB-INF/classes/egovframework/spring/com/context-datasource.xml]: Could not resolve placeholder 'Globals.DriverClassName'
at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.processProperties(PropertyPlaceholderConfigurer.java:287)
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:75)
-- 답변 부탁드립니다.
A
안녕하세요. 정현천님.
context-datasource.xml 설정 상에 PropertyPlaceholderConfigurer의 locations 설정을 어떻게 구성하셨는지에 따른 문제이신 것 같습니다.
<bean id="egov.propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/egovframework/egovProps/globals.properties</value>
<!-- value>file:/product/jeus/egovProps/globals.properties</value-->
</list>
</property>
</bean>
이와 같이 classpath 또는 classpath* 로 지정하신 경우 cloassloader에 의해 해당 파일을 찾기 때문에 war 배포 시에 해당 properties 파일이 포함되어 있으면 문제가 없을 것 같습니다.
또는 공통컴포넌트 배포된 기준으로 보면, 'dataSource-mysql'를 정상 처리하고 'Globals.DriverClassName'만 처리되지 않은 것으로 봐서는 'Globals.DriverClassName'가 실제 정의되어 있지 않은 경우일 수도 있습니다.
dataSource-${Globals.DbType}와 같이 'Globals.DbType' 부분은 정상적으로 mysql을 가져온 것 같습니다.
그럼, 즐겅누 하루되십시오.
감사합니다.
context-datasource.xml 설정 상에 PropertyPlaceholderConfigurer의 locations 설정을 어떻게 구성하셨는지에 따른 문제이신 것 같습니다.
<bean id="egov.propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/egovframework/egovProps/globals.properties</value>
<!-- value>file:/product/jeus/egovProps/globals.properties</value-->
</list>
</property>
</bean>
이와 같이 classpath 또는 classpath* 로 지정하신 경우 cloassloader에 의해 해당 파일을 찾기 때문에 war 배포 시에 해당 properties 파일이 포함되어 있으면 문제가 없을 것 같습니다.
또는 공통컴포넌트 배포된 기준으로 보면, 'dataSource-mysql'를 정상 처리하고 'Globals.DriverClassName'만 처리되지 않은 것으로 봐서는 'Globals.DriverClassName'가 실제 정의되어 있지 않은 경우일 수도 있습니다.
dataSource-${Globals.DbType}와 같이 'Globals.DbType' 부분은 정상적으로 mysql을 가져온 것 같습니다.
그럼, 즐겅누 하루되십시오.
감사합니다.