2016-03-05 38 views
0

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

当我部署我的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 /库在我的应用程序内就像我之前说过的,当我在本地开发机器上运行我的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文件夹使用mysql-connector-java的5.1.38-bin.jar解压以及在tomcat/lib文件夹中。我放置jar的位置似乎并不重要,但服务器部署总是因上面列出的错误而失败。

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

+0

是否有其他人有任何进一步的故障排除的想法?我仍然无法从Web主机的服务器运行我的Java Web应用程序。谢谢,戴夫 – user1405736

回答

0

我以前满足这个问题,我的解决方法是使用mysql-connector-java的5.1.38.bin.jar添加到的tomcat/common/lib目录代替web应用程序库并解决它。

+0

我试图找到Tomcat服务器上的众多文件夹中的mysql-connector-java-5.1.38.bin.jar,包括lib文件夹,无济于事。他们都导致了同样的错误。 – user1405736

+0

1.您可以检查数据库端口1433是否打开。 – TanLingxiao

+0

2.check/lib文件夹关于msbase.jar,mssqlserver.jar,msutil.jar – TanLingxiao