메뉴 건너띄기
상단메뉴 바로가기
본문 바로가기

이 누리집은 대한민국 공식 전자정부 누리집입니다.

본문 영역

적용 지원, FAQ, Q&A 게시판을 통해 기술 문제 해결을 지원합니다.

자주 묻는 질문

[실행환경]다중 datasource 사용 시 실행오류
  • 작성자

    관리자

  • 작성일자

    2017-06-09

  • 조회수

    5,235

질문

안녕하십니까.

mybatis를 이용해 다중 datasource를 사용하기위해
1. datasource 추가
- dataSource, M43dataSource
2. MapperConfigurer
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
... </bean>
<bean id="M43sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="M43dataSource" />
... </bean>

<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
<property name="basePackage" value="security.service.impl" />
<property name="sqlSessionFactoryBeanName" ref="sqlSession" />
</bean>

<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
<property name="basePackage" value="m43.service.impl" />
<property name="sqlSessionFactoryBeanName" ref="M43sqlSession" />
</bean>

3. @Resource(name="M43Mapper") 를 이용하여 접근

위처럼 소스 구현 후 실행하면 아래와 같은 오류가 발생합니다.

6월 08, 2017 11:13:32 오전 org.apache.catalina.core.StandardContext listenerStart
심각: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'egovframework.rte.psl.dataaccess.mapper.MapperConfigurer#0' defined in file [C:\EgovFramework\Source\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\com.dkunc.mes\WEB-INF\classes\spring\context-mapper.xml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'org.apache.ibatis.session.defaults.DefaultSqlSessionFactory' to required type 'java.lang.String' for property 'sqlSessionFactoryBeanName'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.apache.ibatis.session.defaults.DefaultSqlSessionFactory] to required type [java.lang.String] for property 'sqlSessionFactoryBeanName': no matching editors or conversion strategy found
.... (생량)

* 소스 전체 및 에러내용을 첨부합니다.
어느 부분이 잘못되었는지 조언 좀 부탁드립니다.

답변

안녕하세요.
표준프레임워크센터입니다.

에러내용을 살펴본 결과, sqlSessionFactoryBeanName은 string이므로
속성값을 string type으로 넣어줘야하는데
property의 value type을 string으로 변환할 수 없어 발생한 에러로 보입니다.
설정파일에서 ref로 설정한 값을 value로 변경해보시길 바랍니다.

*mybatis 표준프레임워크 연계 관련 다중데이터베이스 설정
 

<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSession"> 
    <property name="dataSource" ref="dataSource"> ... </property>
</bean> 

<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="M43sqlSession"> 
    <property name="dataSource" ref="M43dataSource"> ... </property>
</bean> 

<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer"> 
    <property name="basePackage" value="security.service.impl"></property> 
    <property name="sqlSessionFactoryBeanName" value="sqlSession"></property>
</bean> 

<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer"> 
    <property name="basePackage" value="m43.service.impl"></property>
    <property name="sqlSessionFactoryBeanName" value="M43sqlSession"></property>
</bean>

감사합니다.

이 페이지의 구성

자주 묻는 질문