【发布时间】:2016-06-18 23:36:00
【问题描述】:
需要帮助解决 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 连接选项吗?
【问题讨论】:
-
还有其他人有任何进一步的故障排除想法吗?我仍然无法从 Web 主机的服务器运行我的 Java Web 应用程序。谢谢,戴夫
标签: java mysql jdbc centos tomcat7