需要帮助解决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连接选项吗?
答案 0 :(得分:0)
之前我遇到过这个问题,我的解决方案是将mysql-connector-java-5.1.38.bin.jar添加到 tomcat / common / lib 而不是 web app图书馆并解决了它。