0

I have a dynamic web project in java and i am trying to get the search key from jsp form and search the database to display results to the user. i am getting an error regarding no suitable jdbc driver found

I have referred to similar questions on here and tried to add the jar file to my project but it doesnt work Added the jar file by Right click on DataSearch->Build Path-> Build configurtions-> Libraries-> Add external Jars->ojdbc06.jar then apply The jar file shows in my referenced libraries folder but it still doesn't work.

Here is my jsp form

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Search</title>
</head>
<body>
<form action="ServeData" method="post">
<table style="background-color:skyblue; margin-left:20px; margin-right=20px;margin-top=20px">
<tr style="color:white;text-align:center">
<td>Search Page</td>
</tr>
<tr>
<td>Enter Item:</td>
<td><input type="text" name="key"></td>
</tr>
<tr>
<td><input type="submit" name="search" value="Search"></td>
<td>${message}</td>
</tr>
</table>
</form>
</body>
</html>

Class to create the connection:

package com.database;
import java.sql.*;
public class DatabaseConn 
{
    public static Connection initializeDB() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException
    {
        String dbUrl = "jdbc:oracle:thin:shivam/shivam@localhost:1521:XE";
        Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
        Connection conn = DriverManager.getConnection(dbUrl);
        if(conn != null)
            System.out.println("Connected");
        return conn;
            /*
            Statement statement = conn.createStatement();
            ResultSet rs = statement.executeQuery("select userid from users");
            while(rs.next())
            {
                String name = rs.getString("userid");
                System.out.println(name);
            }
            conn.close();
            System.out.println("Connection closed");*/
    }
}

Servlet code:

package com.database;
import java.sql.*;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ServeData")
public class ServeData extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public ServeData() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
        try
        {
        Connection conn = DatabaseConn.initializeDB();
        String key = request.getParameter("key");
        Statement st = conn.createStatement();
        String sql = "select * from product where name="+key;
        ResultSet rs = st.executeQuery(sql);
            if(!rs.next())
            {
                request.setAttribute("message", "Product not found!");
                request.getRequestDispatcher("Search.jsp").forward(request, response);
            }
            else
            {
                while(rs.next())
                {
                    /*request.setAttribute("message", rs.getString("brand"));
                    request.getRequestDispatcher("Product.jsp").forward(request, response);*/
                    PrintWriter out = response.getWriter(); 
                    out.println("<html><body><b>"+rs.getString("brand")
                                + "</b></body></html>");
                }
            }
            /*
            Statement statement = conn.createStatement();
            ResultSet rs = statement.executeQuery("select userid from users");
            while(rs.next())
            {
                String name = rs.getString("userid");
                System.out.println(name);
            }
            conn.close();
            System.out.println("Connection closed");*/
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}

directory

error i am getting

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at com.database.DatabaseConn.initializeDB(DatabaseConn.java:8)
    at com.database.ServeData.doPost(ServeData.java:27)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    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)
Shivam...
  • 409
  • 1
  • 8
  • 21
  • "tried to add the jar file to my project" - What jar file? Add how and where? We can't see if you did it correctly if you give no details. – Amadan Aug 05 '19 at 05:15
  • you need Oracle JDBC driver jar download from https://www.oracle.com/technetwork/database/application-development/jdbc/downloads/index.html – seenukarthi Aug 05 '19 at 05:16
  • You have to keep the ojdbc6.jar file inside WEB-INF/lib directory – Sambit Aug 05 '19 at 05:16
  • Added jar file ojdbc06.jar by right clicking on DataSearch folder->build path->configuration-> libraries->add external jars – Shivam... Aug 05 '19 at 05:51

0 Answers0