簡體   English   中英

排除MySQL jdbc數據庫連接器錯誤

[英]Troubleshooting MySQL jdbc database connector error

需要幫助解決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主機也在使用Tomcatv7.x。 我的開發工作站是基於Windows的。 我相信網絡主機正在運行CentOS7.x。

另一個令人困惑的部分是我的Web應用程序與以前的Web托管服務器一起工作。

如何解決此問題?

編輯3/9/2016

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應用程序庫中進行解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM