[실행환경]다중 datasource 사용 시 실행오류
- 작성자
- 관리자
- 작성일자
- 2017-06-09
- 조회수
- 4,472
Q
안녕하십니까.
mybatis를 이용해 다중 datasource를 사용하기위해
1. datasource 추가
- dataSource, M43dataSource
2. MapperConfigurer
...
...
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
.... (생량)
* 소스 전체 및 에러내용을 첨부합니다.
어느 부분이 잘못되었는지 조언 좀 부탁드립니다.
...
...
A
안녕하세요.
표준프레임워크센터입니다.
에러내용을 살펴본 결과, sqlSessionFactoryBeanName은 string이므로 속성값을 string type으로 넣어줘야하는데
property의 value type을 string으로 변환할 수 없어 발생한 에러로 보입니다.
설정파일에서 ref로 설정한 값을 value로 변경해보시길 바랍니다.
-------------------------------------------------------------------------
+ mybatis 표준프레임워크 연계 관련 다중데이터베이스 설정 +
-------------------------------------------------------------------------
<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" value="sqlSession" />
</bean>
<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
<property name="basePackage" value="m43.service.impl" />
<property name="sqlSessionFactoryBeanName" value="M43sqlSession" />
</bean>
감사합니다.
표준프레임워크센터입니다.
에러내용을 살펴본 결과, sqlSessionFactoryBeanName은 string이므로 속성값을 string type으로 넣어줘야하는데
property의 value type을 string으로 변환할 수 없어 발생한 에러로 보입니다.
설정파일에서 ref로 설정한 값을 value로 변경해보시길 바랍니다.
-------------------------------------------------------------------------
+ mybatis 표준프레임워크 연계 관련 다중데이터베이스 설정 +
-------------------------------------------------------------------------
<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" value="sqlSession" />
</bean>
<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
<property name="basePackage" value="m43.service.impl" />
<property name="sqlSessionFactoryBeanName" value="M43sqlSession" />
</bean>
감사합니다.