java - MySQL jdbc 数据库连接器错误故障排除

标签 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'

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

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

另一个令人困惑的部分是我的网络应用程序与我之前编写的网络主机一起使用。

如何解决这个问题?

编辑 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

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

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

最佳答案

我以前遇到过这个问题,我的解决方案是将 mysql-connector-java-5.1.38.bin.jar 添加到 tomcat/common/lib 而不是 web 应用程序中库并解决了它。

关于java - MySQL jdbc 数据库连接器错误故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35809520/

相关文章:

php - 多站点系统的数据库结构 - 数据库和 PHP

MySQL 链接表 - View 、外键或触发器?

php - 如何在 mysqli_query 中使用 $_GET?

Java.sql.connection 对象第二次不工作

mysql - Matlab mysql jdbc 内存泄漏与数据库工具箱

c# - 如何使用selenium Web驱动程序来引用Web浏览器的运行实例?

java - 延迟数据导致 OnCreate 上出现 NullPointerException

java - 我正在尝试使用提供的示例 "SendEventX509.java"发送消息,但我遇到了问题。下面提到的堆栈跟踪

java - 错误: local variable imagesLabel is accessed from within inner class; needs to be declared final (Java)

java - PreparedStatement.executeBatch() 之后的 getGeneratedKeys()