在用Maven开发项目时经常会遇到下面的报错信息:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: oracle.jdbc.driver.OracleDriver上面报错是由于Oracle数据库驱动未正常加载引起的。
工具/原料
Maven
一、报错背景
1、用Maven配置Oracle的驱动配置如下<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.1.0</version></dependency>
2、运行Maven搭建的项目时会报出如下错误:org.springframework.beans.factory.BeanCreationException: Error creating 芟鲠阻缒bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: oracle.jdbc.driver.OracleDriver
3、此时我们怀疑是Maven仓库中的ojdbc驱动未正常加载(这一点可以从数据库驱动的配置项报红得到证实),进入到Maven仓库中ojdbc的目录下可以看到仓库中确实不存在驱动的jar包文件
二、报错修复
1、到Oracle官网下载对应版本的驱动文件,驱动文件的版本最好与Oracle数据库中的版本保持一致。
2、下载完成后需要将Oracle驱动文件ojdbc.jar手动安装到本地Maven仓库,具体安装步骤请参考本人百度经验【如何将Oracle驱动手动安装到Maven仓库】
3、手动配置好Oracle驱动后,再次启动项目,Oracle驱动报销信息消失,项目正常启动。