簡體   English   中英

找不到適用於jdbc:// localhost的驅動程序

[英]No suitable driver found for jdbc://localhost

我在Ubuntu 14.04的Jetty 9服務器上部署了一個簡單的servlet。 到昨天為止一切都很好。 但是在系統崩潰后,我的MySQL服務器出現了問題,因此必須對mysql服務器進行配置更改以使其正常運行,即在my.cnf [mysqld][client]節下添加了socket = /tmp/mysql.sockmy.cnf

但是現在servlet無法正常工作。 它給了我下面的錯誤。

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/slappdb
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at slappserver.RegisterServlet.doGet(RegisterServlet.java:74)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:738)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:551)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:568)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1111)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:478)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:199)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.eclipse.jetty.server.Server.handle(Server.java:462)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:279)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:232)
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536)
    at java.lang.Thread.run(Unknown Source)

我完全沒有更改servlet代碼:

final String DB_URL = DatabaseParameters.SlappDbURL;
final String USER = DatabaseParameters.DbServer_Username;
final String PASSWORD = DatabaseParameters.DbServer_Password;
conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);

驅動程序與以前的位置相同: /home/faizal/DEV/jre1.7.0_55/lib/ext/mysql-connector-java-5.0.8-bin.jar ,該文件包含在項目的構建路徑中。

可能出了什么問題?

由於崩潰,我的項目似乎已損壞。 我添加了Class.forName("com.mysql.jdbc.Driver");行之后,它現在可以工作了Class.forName("com.mysql.jdbc.Driver"); 在servlet中。 但是實際上這行不是必需的,因為我使用的是JDBC 4驅動程序。

有趣的是,即使我刪除了這一行,它也可以工作。 因此,我仍然不確定是什么問題,但是至少它可以像以前一樣正常工作,而無需更改代碼。

暫無
暫無

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

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