MySQL jdbc数据库连接器错误

时间:2016-03-05 03:09:47

标签: java mysql jdbc centos tomcat7

需要帮助解决MySQL数据库连接问题。首先,当我在开发工作站上运行Java Web应用程序时,我可以成功连接到我的远程/托管MySQL数据库。

当我将Java Web应用程序部署到托管Web服务器时,我收到以下错误org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

我的mysql-connector-java-5.1.38.bin.jar位于我的应用程序的WEB-INF / libraries文件夹中。就像我之前说的那样,当我在本地开发机器上运行我的Web应用程序时,这似乎工作正常,但在部署到我的Web主机时失败。

Tomcat v7.x在我的开发工作站上运行,我的Web主机也在使用Tomcat v7.x.我的开发工作站是基于Windows的。我相信网络主机正在运行CentOS7.x。

另一个令人困惑的部分是我的Web应用程序与我之前的Web主机一起工作。

如何解决此问题?

编辑2016年3月9日

context.xml中:

<Resource
    name="jdbc/dbname_ccp"
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100"
    maxIdle="30"
    maxWait="10000"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://domain.com:3306/dbname_ccp"
    username="username_admin"
    password="dbname_password"
    validationQuery="select 1"
/>

的web.xml

<resource-ref>
    <description>MySQL Datasource</description>
    <res-ref-name>jdbc/dbname_ccp</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

我相信我拥有正确的用户名,密码和数据库名称,因为当我从开发工作站运行Java Web应用程序时,此相同的连接信息也能正常工作。部署到托管Web服务器时,我收到以下错误:

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
    at utilities.DBConnection.getConnectionMySQL(DBConnection.java:33)
    at model.account.UserAccountDAO.Register(UserAccountDAO.java:286)
    at model.account.ProcessUserAccount.register(ProcessUserAccount.java:237)
    at controller.AccountServlet.performTask(AccountServlet.java:50)
    at controller.AccountServlet.doPost(AccountServlet.java:76)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getDriver(DriverManager.java:278)
    at  org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)
    ... 24 more

我尝试在项目应用程序WEB-INF / lib文件夹以及tomcat / lib文件夹中包含mysql-connector-java-5.1.38-bin.jar文件。在我放置jar的地方似乎并不重要,服务器部署总是因上面列出的错误而失败。

如何解决此问题?还有其他MySQL连接选项吗?

1 个答案:

答案 0 :(得分:0)

之前我遇到过这个问题,我的解决方案是将mysql-connector-java-5.1.38.bin.jar添加到 tomcat / common / lib 而不是 web app图书馆并解决了它。