mapreduce中Cannot load JDBC driver class 'net.sourceforge.jtds.jdbc.Driver' 异常分析
来源:互联网 发布:windows程序设计 pdf 编辑:程序博客网 时间:2024/06/10 03:25
因为mapreduce牵扯到了用spring,hibernate开源框架,引入之后报如下错误(在普通web工程中是没问题的):
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'net.sourceforge.jtds.jdbc.Driver'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:114)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2163)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2159)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1383)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:855)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:774)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1317)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1076)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1317)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1076)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.aop.support.AbstractBeanFactoryPointcutAdvisor.getAdvice(AbstractBeanFactoryPointcutAdvisor.java:80)
at org.springframework.aop.aspectj.AspectJProxyUtils.isAspectJAdvice(AspectJProxyUtils.java:67)
at org.springframework.aop.aspectj.AspectJProxyUtils.makeAdvisorChainAspectJCapableIfNecessary(AspectJProxyUtils.java:49)
at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.extendAdvisors(AspectJAwareAdvisorAutoProxyCreator.java:101)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:88)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:68)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:407)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1418)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:872)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:94)
at mapreduce.HbaseMapReduceForUserBaseInfo.<clinit>(HbaseMapReduceForUserBaseInfo.java:69)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.util.RunJar.main(RunJar.java:179)
Caused by: java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
首先定位是否缺失jar包jtds-1.2.5.jar,已经有了,再判断是否是jar包版本冲突,仍然没问题。
最终发现(我是用的多数据源的)
spring 事务配置:
<bean id="dataSource-digger-task" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass">
<value>net.sourceforge.jtds.jdbc.Driver</value>
</property>
<property name="jdbcUrl">
<value>jdbc:jtds:sqlserver://192.168.X.X:1433/database;tds=8.0;lastupdatecount=true</value>
</property>
<property name="properties">
<props>
<prop key="c3p0.minPoolSize">2</prop>
<prop key="hc3p0.maxPoolSize">10</prop>
<prop key="user">sa</prop>
<prop key="password">Adsit!@#$</prop>
<prop key="minPoolSize">2</prop>
<prop key="maxPoolSize">12</prop>
<prop key="initialPoolSize">2</prop>
<prop key="maxIdleTime">120</prop>
<prop key="acquireIncrement">6</prop>
<prop key="maxStatements">100</prop>
<prop key="idleConnectionTestPeriod">60</prop>
<prop key="acquireRetryAttempts">30</prop>
<prop key="timeout">300</prop>
</props>
</property>
</bean>
引用的c3po数据源类是没问题的,但是
<!--bean id="dataSource-data1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>net.sourceforge.jtds.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:jtds:sqlserver://192.168.X.X:1433/database;tds=8.0;lastupdatecount=true</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>Adsit!@#$</value>
</property>
<property name="maxActive">
<value>40</value>
</property>
<property name="maxIdle">
<value>10</value>
</property>
<property name="initialSize">
<value>10</value>
</property>
<property name="maxWait">
<value>1000</value>
</property>
<property name="removeAbandoned">
<value>true</value>
</property>
<property name="removeAbandonedTimeout">
<value>60</value>
</property>
<property name="timeBetweenEvictionRunsMillis">
<value>60000</value>
</property>
<property name="minEvictableIdleTimeMillis">
<value>600000</value>
</property>
</bean-->
有问题,相关jar包也已经导入,换成c3p0数据源之后问题解决
- mapreduce中Cannot load JDBC driver class 'net.sourceforge.jtds.jdbc.Driver' 异常分析
- Cannot load JDBC driver class 'net.sourceforge.jtds.jdbc.Driver'
- Eclipse cannot load JDBC Driver class: net.sourceforge.jtds.jdbc.Driver
- grails问题Cannot load JDBC driver class 'net.sourceforge.jtds.jdbc.Driver'解决方案
- 异常Cannot load JDBC driver class 'com.mysql.jdbc.Driver '
- Cannot load JDBC driver class ${jdbc.driverClassName}
- Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
- Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
- Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
- Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
- Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
- 解决Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
- Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
- Cannot load JDBC driver class 'com.mysql.jdbc.Driver
- Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
- Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
- Cannot load JDBC driver class 'com.mysql.jdbc.Driver '
- Cannot load JDBC driver class 'com.mysql.jdbc.Driver
- B2C网络平台的七大SEO策略
- PHP中return array数组的接收
- 1.--projecthelp -p src\com\ankangqiao\Hello.java
- Redis运维之道(视频+PPT)
- JDK、J2EE、J2SE、J2ME概念详解
- mapreduce中Cannot load JDBC driver class 'net.sourceforge.jtds.jdbc.Driver' 异常分析
- 2.-projecthelp -p build.xml
- UITextField 用法简介
- timepicker的学习<后面日期大于前面日期>:http://trentrichardson.com/examples/timepicker/
- redis数据持久化
- 浅谈Android开机启动速度优化(含应用程序启动速度优化)
- fix ffmpeg build problem
- M文件无法关联的解决方案
- 解决CE6和CE5在Platform Builder的Connectivity Options上的冲突