无法为连接URL创建类“com.mysql.jdbc.Driver”的JDBC驱动程序

时间:2013-11-05 16:22:14

标签: java mysql spring tomcat jndi

我得到了上述异常,我不知道为什么。 以下是一些更多信息:

Cannot create JDBC driver of class 'com.mysql.jdbc.Driver' for connect URL 'jdbc:mysql://localhost:3306/staffing_2014'

我正在使用Spring。在Spring应用程序上下文中,我有以下dataSource:

<jee:jndi-lookup id="dataSource"
    jndi-name="jdbc/StaffingDB"
    expected-type="javax.sql.DataSource" />

似乎从tomcat的context.xml

中读取数据库URL和凭据
<Resource name="jdbc/StaffingDB" auth="Container" type="javax.sql.DataSource"
           maxActive="100" maxIdle="30" maxWait="10000"
           username="xxx" password="yyy" driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://localhost:3306/staffing_2014"/>

在有人建议谷歌搜索之前,我有。我发现的明显答案是:

  • 数据库网址格式错误? - 检查并确定。
  • 类路径中的MySQL驱动程序?是 - jar在$TOMCAT_HOME/lib

还有其他建议吗?

编辑 - 从底部开始:

java.sql.SQLException: No suitable driver
java.sql.DriverManager.getDriver(DriverManager.java:279)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)

1 个答案:

答案 0 :(得分:1)

您使用的是哪种版本的Tomcat?在某些Tomcats(T5)中,TOMCAT_HOME/lib可能不是正确的位置。您必须将驱动程序放在Tomcat的背书文件夹中,该文件夹可能是

  • TOMCAT_HOME /背书或
  • TOMCAT_HOME /共享/ lib中

检查您的Tomcat设置。