큐럼
982
2016-06-29 11:05:22
2
1497

스프링 프로젝트 실행 중에 ClassNotFoundException이 발생합니다.


이번에 스프링 4 프로젝트를 메이븐으로 만들어 보았습니다. (STS 이용중이구요.)

커넥션 풀은 HikariCP를 이전에 MySQL에 한번 테스트삼아 적용해본 기억을 더듬더듬 떠올려 적용했습니다.


데이터베이스는 SQLServer2008 버전을 소유하고 있어서 이걸로 작업을 해 보고 있는데요.

SQLServer용 라이브러리인 sqljdbc4가 메이븐 저장소에 없는 관계로 다운로드 받아서 build path에서 라이브러리를 추가했습니다.(아래 사진처럼요)


그러고 실행을 했더니





    ... 41 more
    at com.zaxxer.hikari.util.UtilityElf.createInstance(UtilityElf.java:76)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1164)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1313)
Caused by: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDataSource
    ... 32 more
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:71)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:101)
    at com.zaxxer.hikari.pool.PoolBase.<init>(PoolBase.java:91)
    at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:294)
    at com.zaxxer.hikari.util.UtilityElf.createInstance(UtilityElf.java:89)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDataSource


이러한 오류가 발생했습니다.


servlet-context.xml 에서 빈 설정은 이렇게 하였습니다.

	<bean id="hikariConfig_dev" class="com.zaxxer.hikari.HikariConfig">
		<property 
			name="dataSourceClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDataSource"/> 
		<property name="dataSourceProperties">
			<props>		
				<prop key="serverName">{서버주소}</prop>
				<prop key="databaseName">{데이터베이스명}</prop>
				<prop key="user">{계정}</prop>
				<prop key="password">{패스워드}</prop>
				<prop key="connectionTestQuery">select 1</prop>
				<prop key="maximumPoolSize">600</prop>
				<prop key="minimumIdle">60</prop>
				<prop key="idleTimeout">3000</prop>
				
			</props>
		</property>

	</bean>
	
	<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
	    <constructor-arg ref="hikariConfig_dev" />
	</bean>

	<bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!-- <property name="mapperLocations" value="classpath*:sample/config/mappers/**/*.xml" 
			/> -->
	</bean>


왜 자꾸 클래스를 찾지 못하는 것일까요?
0
0
  • 답변 2

  • HelloHelloo
    127
    2016-06-29 20:03:01
    jdbc를 톰캣라이브러리에 넣어보세요
    1
  • 큐럼
    982
    2016-06-29 21:58:04

    감사합니다! 톰캣에 넣으니 문제의 에러는 사라졌네요.

    프로젝트에 포함시켜서 문제가 없으려면 어떤 방법이 있을까요?

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.