Solved

JDBC: ClassNotFoundException  Class.forName()

Posted on 2004-08-03
7
2,474 Views
Last Modified: 2007-10-27
When trying to access my database I get the following error message:

INFO: JK2: ajp13 listening on /0.0.0.0:8010
Aug 3, 2004 9:07:06 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=1 time=1/43  config=null
Aug 3, 2004 9:07:07 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3733 ms
java.lang.ClassNotFoundException: usr/local/JDBCmySQL/mysql*/mysql/jdbc/Driver
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:219)
        at rtpm.EAKServlets.DBHandler.doPost(DBHandler.java:36)

Here is my database handler:

package rtpm.EAKServlets;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import rtpmEAKBeans.FormBean;

public class DBHandler extends HttpServlet {

    public void doPost (HttpServletRequest request,
      HttpServletResponse response) {
      try { // OBTAIN A DATABASE CONNECTION
         
          // Step 1: Load the JDBC driver          
          String driverName = "usr.local.JDBCmySQL.mysql*.mysql.jdbc.Driver";
          Class.forName(driverName, true, this.getClass().getClassLoader()).newInstance();
          // Class.forName("driverName", true, this.getClass().getClassLoader());
          Properties p = new Properties();
          p.put("user", "rmwijage");
          p.put("password", "NahumCh1");
                 
          // Step 2: Establish A connection to the database          
          String URL = "jdbc:mysql:///localhost/rtpmKenyaDB";
          Connection conn = null;  // conn is a Connection object
          conn = DriverManager.getConnection(URL,p);
                         
          String sql = "INSERT INTO rtpm_user(firstname, surname, " +
          "username, password1, password2, email, " +
          "sdp_code) VALUES (?, ?, ?, ?, ?, ?, ?)";
          PreparedStatement ps = conn.prepareStatement(sql);
         
          // Retreave the bean properties to be inserted into table rtpm_user
          FormBean f = (FormBean) request.getAttribute("formHandler");
         
          // Set the parameters in the prepared statement
          ps.setString(1, f.getFirstName());
          ps.setString(2, f.getLastName());
          ps.setString(3, f.getUserName());
          ps.setString(4, f.getPassword1());
          ps.setString(5, f.getPassword2());
          ps.setString(6, f.getEmail());
          ps.setString(7, f.getSdp());
         
          // Insert the row in the table
          ps.executeUpdate();

          // Close the connection
          ps.close();
          conn.close();    
      }
      catch (SQLException e) {
          // handle any errors
          System.out.println("SQLException: " + e.getMessage());
          System.out.println("SQLState: " + e.getSQLState());
          System.out.println("VendorError: " + e.getErrorCode());
          }
      catch (Exception e) {
      e.printStackTrace();
      }
     
      // Send the request back to success.jsp  
      try {
          getServletConfig().getServletContext().
            getRequestDispatcher("/success.jsp").
             forward(request, response);
      }
      catch (Exception e){}
     
   }
}


0
Comment
Question by:Rrugemalira
  • 7
7 Comments
 
LVL 11

Assisted Solution

by:sompol_kiatkamolchai
sompol_kiatkamolchai earned 500 total points
ID: 11706928
usr.local.JDBCmySQL.mysql*.mysql.jdbc.Driver

This may not a correct driver class.

You can get driver form

http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-3.0.14-production.zip/from/http://gd.tuwien.ac.at/db/mysql/
0
 
LVL 11

Expert Comment

by:sompol_kiatkamolchai
ID: 11707033
after you d/l mysql-connector-java-3.0.14-production.zip then extract the file mysql-connector-java-3.0.14-production-bin.jar to any directory in your hard drive then include that jar file into classpath.

then you can use this code to get a connection to database

import java.sql.*;

public class DatabaseConnection {
  public DatabaseConnection() {
  }

  public static Connection getConnection() {
    Connection con = null;
    try {
      Class.forName("com.mysql.jdbc.Driver");
      con = DriverManager.getConnection("jdbc:mysql:///localhost/rtpmKenyaDB", "rmwijage", "NahumCh1");
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
    return con;
  }
}
0
 
LVL 11

Expert Comment

by:sompol_kiatkamolchai
ID: 11707070
for database url it should be

"jdbc:mysql://localhost/rtpmKenyaDB"
or
"jdbc:mysql://localhost/rtpmKenyaDB?user=rmwijage&password=NahumCh1"
0
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 
LVL 11

Expert Comment

by:sompol_kiatkamolchai
ID: 11707075
for more information, please read REAEME.txt in that zip file.

0
 
LVL 11

Accepted Solution

by:
sompol_kiatkamolchai earned 500 total points
ID: 11707125
Or try this. if you want to use your code. and open connection in jsp file.

package rtpm.EAKServlets;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Driver;

import rtpmEAKBeans.FormBean;

public class DBHandler extends HttpServlet {

    public void doPost (HttpServletRequest request,
      HttpServletResponse response) {
      try { // OBTAIN A DATABASE CONNECTION
         
          // Step 1: Load the JDBC driver          
          Class.forName("com.mysql.jdbc.Driver");
                 
          // Step 2: Establish A connection to the database          
           Connection conn = DriverManager.getConnection("jdbc:mysql:///localhost/rtpmKenyaDB", "rmwijage", "NahumCh1");
                         
          String sql = "INSERT INTO rtpm_user(firstname, surname, " +
          "username, password1, password2, email, " +
          "sdp_code) VALUES (?, ?, ?, ?, ?, ?, ?)";
          PreparedStatement ps = conn.prepareStatement(sql);
         
          // Retreave the bean properties to be inserted into table rtpm_user
          FormBean f = (FormBean) request.getAttribute("formHandler");
         
          // Set the parameters in the prepared statement
          ps.setString(1, f.getFirstName());
          ps.setString(2, f.getLastName());
          ps.setString(3, f.getUserName());
          ps.setString(4, f.getPassword1());
          ps.setString(5, f.getPassword2());
          ps.setString(6, f.getEmail());
          ps.setString(7, f.getSdp());
         
          // Insert the row in the table
          ps.executeUpdate();

          // Close the connection
          ps.close();
          conn.close();    
      }
      catch (SQLException e) {
          // handle any errors
          System.out.println("SQLException: " + e.getMessage());
          System.out.println("SQLState: " + e.getSQLState());
          System.out.println("VendorError: " + e.getErrorCode());
          }
      catch (Exception e) {
      e.printStackTrace();
      }
     
      // Send the request back to success.jsp  
      try {
          getServletConfig().getServletContext().
            getRequestDispatcher("/success.jsp").
             forward(request, response);
      }
      catch (Exception e){}
     
   }
}
0
 
LVL 11

Expert Comment

by:sompol_kiatkamolchai
ID: 11707151
sorry. replace

          // Step 2: Establish A connection to the database          
           Connection conn = DriverManager.getConnection("jdbc:mysql:///localhost/rtpmKenyaDB", "rmwijage", "NahumCh1");

with this

          // Step 2: Establish A connection to the database          
           Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/rtpmKenyaDB", "rmwijage", "NahumCh1");

or this if above does not work

          // Step 2: Establish A connection to the database          
           Connection conn = DriverManager.getConnection"jdbc:mysql://localhost/rtpmKenyaDB?user=rmwijage&password=NahumCh1", "rmwijage", "NahumCh1");

0
 
LVL 11

Expert Comment

by:sompol_kiatkamolchai
ID: 11707170
Hope all my comments would help you. :)
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
library class in java 1 92
approach on java challenges Approach on java challenges or real world challenges 29 160
excpetion with multiple catch 11 116
equalIsNot  challenge 43 140
SEO can be a real minefield to navigate, but there are three simple ways to up your SEO game just be re-assessing your content output.
Color can increase conversions, create feelings of warmth or even incite people to get behind a cause. If you want your website to really impact site visitors, then it is vital to consider the impact color has on them.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question