0

I am trying simple login authentication using servlets and jdbc connection to MySQL database. After executing it on tomcat server I am getting following error:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.leader.prog.Validate.checkUser(Validate.java:13)
at com.leader.servlet.Login1.doPost(Login1.java:42)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2466)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2455)
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)

I am sharing the content of all files:

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
 <servlet-name>login</servlet-name>
    <servlet-class>com.leader.servlet.Login1</servlet-class>
  </servlet>
   <servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
  </servlet-mapping>


   <servlet>
<servlet-name>welcome</servlet-name>
<servlet-class>com.leader.servlet.Welcome</servlet-class>
   </servlet>
  <servlet-mapping>
<servlet-name>welcome</servlet-name>
<url-pattern>/welcome</url-pattern>
  </servlet-mapping>


  <welcome-file-list>
<welcome-file>Home.html</welcome-file>
  </welcome-file-list>
</web-app>

Login1.java

package com.leader.servlet;


import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
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 com.leader.*;
import com.leader.prog.Validate;

@WebServlet("/Login1")
public class Login1 extends HttpServlet {
/**
 * @see HttpServlet#HttpServlet()
 */
public Login1() {
    super();
    // TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}


      protected void doPost(HttpServletRequest request,
                        HttpServletResponse response)
                throws ServletException, IOException
      {
          response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();

            String user = request.getParameter("userName");
            String pass = request.getParameter("password");

            if(Validate.checkUser(user.toString(),pass.toString()))
            {
                RequestDispatcher rs = request.getRequestDispatcher("Welcome");
                rs.forward(request, response);
            }
            else
            {
               out.println("Username or Password incorrect");
               RequestDispatcher rs = request.getRequestDispatcher("Home.html");
               rs.include(request, response);
            }

        }  
      }

validate.java

package com.leader.prog;
import java.sql.*;

public class Validate
 {

 public static boolean checkUser(String user,String pass) 
 {
  boolean st =false;
  try{

 //loading driver 
     Class.forName("com.mysql.jdbc.Driver");

 //creating connection with the database 
     Connection con=DriverManager.getConnection
                    ("jdbc:mysql://localhost:3306/person","root","password");
     PreparedStatement ps =con.prepareStatement
                         ("select * from person where pid=? and password=?");
     ps.setString(1, user);
     ps.setString(2, pass);
     ResultSet rs =ps.executeQuery();
     st = rs.next();

  }catch(Exception e)
  {
      e.printStackTrace();
  }
     return st;                 
 }   
 }

Please help me to get out of this issue.

2 Answers 2

1

Check the availability of mysql driver is in classpath. If you are using IDE(eclipse) try to add it to build path.

Sign up to request clarification or add additional context in comments.

Comments

1

You should add Mysql connector library you your project buildpath

You can download library from http://dev.mysql.com/downloads/connector/j/5.0.html

or

http://www.java2s.com/Code/Jar/c/Downloadcommysqljdbc515jar.htm

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.