2016-03-05 34 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