![](/img/trans.png)
[英]java.lang.ClassNotFoundException: com.mysql.jdbc.Driver in IntelliJ using Maven
[英]java.lang.ClassNotFoundException: com.mysql.jdbc.Driver even after using the mySql Maven Dependency on Intellij
我正在將 Intellij 用於 servlet 項目並使用 maven
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
據我所知,在 tomcat 網絡服務器上部署戰爭時,這應該處理所有與類路徑相關的問題。
但我得到
08-Apr-2017 13:40:37.047 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /Applications/tomcat/webapps/manager 08-Apr-2017 13:40: 37.092 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /Applications/tomcat/webapps/manager has finished in 44 ms java.lang.ClassNotFoundException: com.mysql.jdbc. Driver at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119) at Z93F725 A07423FE1C889F448B33D21F46Z.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.saurabh.testdb.TestDBServlet.doGet(TestDBServlet.java:34) at javax.servlet.http. HttpServlet.service(HttpServlet.java:635) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache .catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.Z1B359D8753858B55BEFA04451067AAED6D2CZDBBBF。 573C86B18526296117Z.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 165) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase .invoke(AuthenticatorBase.java:478) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.ZB6EFD606D118D 0F62066E31419FF04CCZ.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) at org.apache.coyote.AbstractProcessorLight .process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) at org.ZB6EFD606D118D0F620 66E31419FF04CCZ.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1441) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor. runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)在 java.lang.Thread.run(Thread.java:745)
這是我加載驅動程序的代碼
package com.saurabh.testdb;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
@WebServlet("/TestDBServlet")
public class TestDBServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//set up connection variable
String jdbcUrl = "jdbc:mysql://localhost:3306/web_customer_tracker?useSSL=false";
String user = "springstudent";
String pass = "sringstudent";
String driver = "com.mysql.jdbc.Driver";
try {
PrintWriter out = resp.getWriter();
out.println("Connecting to database: " + jdbcUrl);
Class.forName(driver);
Connection myConn = DriverManager.getConnection(jdbcUrl, user, pass);
out.println("Connection successful!!!");
myConn.close();
} catch (Exception exc) {
exc.printStackTrace();
}
}
}
您必須手動將jdbc_connector
添加到 tomcat 服務器,您應該將 jar 包含到此文件夾$TOMCAT_HOME/lib
剛剛復制了你的錯誤。 好像新版本中驅動的名字變了。 當您下載 maven 依賴項時,最好使用最新的穩定版本 - 這樣您就可以從社區獲得更好更快的支持。 `com.mysql.cj.jdbc.Driver' 這是我得到的錯誤信息:
正在加載 class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.cj.Z84BEFFD3A0D49636A58CE6080CAA877C。 驅動通過SPI自動注冊,一般不需要手動加載驅動class。 com.mysql.cj.jdbc.exceptions.CommunicationsException:通信鏈路故障
IntelliJ 終極版的答案
您可以添加您的JDBC 連接器 jar 文件來運行配置:
添加jar 文件
或者您可以簡單地將 jar 添加到$TOMCAT_HOME/lib
一般默認路徑為C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib
使緩存無效並重新啟動
從給定的鏈接mysql-connector.jar下載 mysql-connector.jar 文件
apache-tomcat-10.0.23 -> lib -> mysql-connector.jar
只需打開 tomcat 文件夾和 go 到 lib 文件夾,然后將 mysql-connector.jar 文件粘貼到那里。 它對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.