Why I am getting class not found exception for Class.forName("com.mysql.jdbc.Driver");

33,173

Right click on the Project, go to Properties. Choose Deployment Assembly (if not found, read the update part) from the left pane. Check if Java Build Path Entries are provided. If not, click on Add and include it. If it is already present, click Add to include your connector jar as Archive. Do a Project>Clean, restart your Server.

Update

If the Project is not being Faceted, you will not find this option. You can click on Project Facets, convert to faceted structure and add Dynamic Web Module and related dependencies.

Update

Web Deployment Assembly Problem. This answer is helpful in most cases.

Share:
33,173
Abhijit Kumbhar
Author by

Abhijit Kumbhar

Updated on July 20, 2022

Comments

  • Abhijit Kumbhar
    Abhijit Kumbhar almost 2 years

    I am developing an web app Using : eclipse IDE(Marse), Java 8, Apache tomcat 8, MySQL. My code for user registration is as follows:

    System.out.println("Connecting....");
                Class.forName("com.mysql.jdbc.Driver");
                System.out.println("Class found....");
                String url="jdbc:mysql://localhost:3306/db";
                String user="root";
                String password="root";
                System.out.println("success");
                Connection conn = DriverManager.getConnection(url,user,password);
                String query = "insert into login (username,password,emailid,country,city) values (?,?,?,?,?)";
                PreparedStatement ps = conn.prepareStatement(query);
                ps.setString(1,b.getUsername());
                ps.setString(2,b.getPassword());
                ps.setString(3,b.getEmailid());
                ps.setString(4,b.getCountry());
                ps.setString(5,b.getCity());
                int count=ps.executeUpdate();
                ps.close();
                conn.close();
    

    My code is also correct and also I added mysql-connector-java-5.1.36 by using Build path>add_external_jar option in eclipse. But still why it gives me such a exception ?

    Connecting.... java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1332) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at model.InfoModel.SaveInfo(InfoModel.java:14) at controller.Register_user.doGet(Register_user.java:35) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1526) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1482) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)

  • Abhijit Kumbhar
    Abhijit Kumbhar over 8 years
    Oh !!! Great... This resolves my problem :)
  • log0
    log0 about 3 years
    only Project->Clean worked for me