템플릿 프로젝트의 JNDI 설정 문의
- 작성자 :
- 강*선
- 작성일 :
- 2015-08-10 20:10:09
- 조회수 :
- 1,546
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
안녕하십니까 ?
저희 프로젝트는 전자정부 프레임워크의 템플릿 프로젝트를 활용하여
개발하고 있습니다. 문의 드리고 싶은 부분은 데이터베이스 연결 부분을
JNDI 방식으로 변경하는 부분입니다.
사이트 참조결과 http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:psl:data_source#JNDIDataSource
위 페이지처럼 안내하고 계셔서 관련 사항 문의 드립니다.
1. 위 페이지에서 네이밍스페이스와 jeus 부분의 <jee/> 추가사항은 context_datasource.xml 파일을 수정하는 것입니까 ?
2. context-datasource.xml 의 기존 datasource bean 설정부분은 어떻게 수정하는 것인지 문의드립니다.
기존설정
============================================================================
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- 환경설정 기본정보를 globals.properties 에서 참조하도록 propertyConfigurer 설정 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/ncms/properties/globals.properties</value>
</list>
</property>
</bean>
<!-- datasource 설정(propertyConfigurer 활용) -->
<alias name="dataSource-${Globals.DbType}" alias="dataSource" />
<!-- mssql -->
<bean id="dataSource-mssql" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${Globals.DriverClassName}"/>
<property name="url" value="${Globals.Url}" />
<property name="username" value="${Globals.UserName}"/>
<property name="password" value="${Globals.Password}"/>
</bean>
============================================================================
위 설정 부분에서 mssql 을 사용할 경우 1번 에서 설정한 jndi 를 이용하기 위하여는 설정을 어떻게 바꾸어야 하는지
문의 드립니다.
그럼 수고하십시오.
저희 프로젝트는 전자정부 프레임워크의 템플릿 프로젝트를 활용하여
개발하고 있습니다. 문의 드리고 싶은 부분은 데이터베이스 연결 부분을
JNDI 방식으로 변경하는 부분입니다.
사이트 참조결과 http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:psl:data_source#JNDIDataSource
위 페이지처럼 안내하고 계셔서 관련 사항 문의 드립니다.
1. 위 페이지에서 네이밍스페이스와 jeus 부분의 <jee/> 추가사항은 context_datasource.xml 파일을 수정하는 것입니까 ?
2. context-datasource.xml 의 기존 datasource bean 설정부분은 어떻게 수정하는 것인지 문의드립니다.
기존설정
============================================================================
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- 환경설정 기본정보를 globals.properties 에서 참조하도록 propertyConfigurer 설정 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/ncms/properties/globals.properties</value>
</list>
</property>
</bean>
<!-- datasource 설정(propertyConfigurer 활용) -->
<alias name="dataSource-${Globals.DbType}" alias="dataSource" />
<!-- mssql -->
<bean id="dataSource-mssql" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${Globals.DriverClassName}"/>
<property name="url" value="${Globals.Url}" />
<property name="username" value="${Globals.UserName}"/>
<property name="password" value="${Globals.Password}"/>
</bean>
============================================================================
위 설정 부분에서 mssql 을 사용할 경우 1번 에서 설정한 jndi 를 이용하기 위하여는 설정을 어떻게 바꾸어야 하는지
문의 드립니다.
그럼 수고하십시오.
A
안녕하세요. 표준프레임워크 센터입니다.
1. 위 페이지에서 네이밍스페이스와 jeus 부분의 <jee/> 추가사항은 context_datasource.xml 파일을 수정하는 것입니까 ?
//문의하신대로 context_datasource.xml 파일을 수정하면 됩니다.
2. context-datasource.xml 의 기존 datasource bean 설정부분은 어떻게 수정하는 것인지 문의드립니다.
//문의하신 예시 기준으로는 "dataSource-mssql" bean 대신 JNDI 설정으로 교체하시면 됩니다.
구체적인 방법은 우선 사용하는 WAS의 Database connection pool과 DataSource를 설정하십니다.
(WAS에 따라 구체적인 설정 방법이 다르기 때문에 WAS쪽 문서 확인)
그렇게 하시면 WAS가 해당 DataSource에 대한 JNDI 명을 제공합니다. (DataSource 설정하면서 JNDI 명도 설정하는 방식임)
그 설정을 위키내용과 같이 context-datasource.xml에 반영하시면 됩니다. (기존 DBCP 방식은 삭제하시거나 주석처리)
ex)
<jee:jndi-lookup id="dataSource-mssql" jndi-name="${jndiName}" resource-ref="true">
<jee:environment>
java.naming.factory.initial=${jeus.java.naming.factory.initial}
java.naming.provider.url=${jeus.java.naming.provider.url}
</jee:environment>
</jee:jndi-lookup>
그리고 주의하실 것은 "jee:"과 같이 jee namespace를 지정하셔야 하기 때문에, xml 선언 부분 상에 xmlns:jee 추가와 xsi:schemaLocation 추가를 하셔야 합니다.
감사합니다.
1. 위 페이지에서 네이밍스페이스와 jeus 부분의 <jee/> 추가사항은 context_datasource.xml 파일을 수정하는 것입니까 ?
//문의하신대로 context_datasource.xml 파일을 수정하면 됩니다.
2. context-datasource.xml 의 기존 datasource bean 설정부분은 어떻게 수정하는 것인지 문의드립니다.
//문의하신 예시 기준으로는 "dataSource-mssql" bean 대신 JNDI 설정으로 교체하시면 됩니다.
구체적인 방법은 우선 사용하는 WAS의 Database connection pool과 DataSource를 설정하십니다.
(WAS에 따라 구체적인 설정 방법이 다르기 때문에 WAS쪽 문서 확인)
그렇게 하시면 WAS가 해당 DataSource에 대한 JNDI 명을 제공합니다. (DataSource 설정하면서 JNDI 명도 설정하는 방식임)
그 설정을 위키내용과 같이 context-datasource.xml에 반영하시면 됩니다. (기존 DBCP 방식은 삭제하시거나 주석처리)
ex)
<jee:jndi-lookup id="dataSource-mssql" jndi-name="${jndiName}" resource-ref="true">
<jee:environment>
java.naming.factory.initial=${jeus.java.naming.factory.initial}
java.naming.provider.url=${jeus.java.naming.provider.url}
</jee:environment>
</jee:jndi-lookup>
그리고 주의하실 것은 "jee:"과 같이 jee namespace를 지정하셔야 하기 때문에, xml 선언 부분 상에 xmlns:jee 추가와 xsi:schemaLocation 추가를 하셔야 합니다.
감사합니다.