SpringMVC,属性“ driverClassName”引发了java.lang.IllegalStateException:无法加载驱动程序类oracle.jdbc.driver.OracleDriver

时间:2018-08-08 18:42:20

标签: spring-mvc

但是为什么它没有从我在项目根目录中创建的lib文件夹中获取ojdbc7.jar ????

我添加了以下内容

  Class.forName("oracle.jdbc.driver.OracleDriver"); 

我的控制器的构造函数中的代码,它引发了异常。因此,我遵循了该链接,oracle.jdbc.driver.OracleDriver ClassNotFoundException在该链接中,我做了以下

在Eclipse中,右键单击您的应用程序

运行方式->运行配置->从类型过滤器文本框中选择服务器

然后在Bootstrap条目下的Classpath中添加classes12.jar文件,然后单击Apply 现在,运行文件。这对我有用!! ....

这确实有效。但是怎么没能从lib文件夹中获得ojdbc7.jar?

我在项目根目录中创建了一个lib文件夹,并将ojdbc7.jar保留在其中。

但是仍然出现以下错误,

Property 'driverClassName' threw exception; nested exception is 
java.lang.IllegalStateException: Could not load JDBC driver class 
[oracle.jdbc.driver.OracleDriver]    

我在网上搜索了同样的错误,所有人都说要把罐子放在类路径中。我想我在类路径中有它。但是错误仍然存​​在。

我有ojdbc7.jar。我正在使用Oracle 12c。

有人可以帮我吗?

在employeeServlet-servlet.xml中,我将数据源定义为

<!-- DataSource -->
    <bean id="dataSource" 
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${database.driver}"> 
 </property>
        <property name="url" value="${database.url}"></property>
        <property name="username" value="${database.user}"></property>
        <property name="password" value="${database.password}"></property>
    </bean>   

在我拥有的application.properties中,

#Database related properties
database.driver=oracle.jdbc.driver.OracleDriver
database.url=jdbc:oracle:thin:@localhost:1521:orcl
database.user=system
database.password=oracle

在pom.xml中,我有

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>${oracle.version}</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/ojdbc7.jar</systemPath> <!-- must match file name -->
</dependency>  

1 个答案:

答案 0 :(得分:0)

您弹出此错误:

Property 'driverClassName' threw exception; nested exception is 

java.lang.IllegalStateException:无法加载JDBC驱动程序类 [oracle.jdbc.driver.OracleDriver]

测试“ oracle.jdbc.driver.OracleDriver”是否在类路径上,如下所示:

try {
  Class.forName("oracle.jdbc.driver.OracleDriver");
  //on classpath
} catch(ClassNotFoundException e) {
  //not on classpath
}

如果Class.forName("oracle.jdbc.driver.OracleDriver");中发生异常

此行导致ClassNotFoundException,因为您尚未将ojdbc14.jar文件放在项目的lib文件夹中。或您尚未设置所需jar的classpath

您可能想阅读以下问题: Property 'driverClassName' threw exception; Could not load JDBC driver class [org.postgresql.Driver]

oracle.jdbc.driver.OracleDriver ClassNotFoundException