Hi,
I think it's a configuration problem of your servlet engine.
I use JServ from java.apache.org and I had to add the postresql.jar
archive to the classpath environment variable in the config file of
the servlet engine. Here's a part of my configuration file:
# CLASSPATH environment variable passed to the
JVMwrapper.classpath=/usr/local/lib/ApacheJServ.jarwrapper.classpath=/usr/local/lib/postresql.jarwrapper.classpath=/usr/local/lib/gnujsp.jar
(you'll probably have to restart your web server to restart
the servlet engine...)
Hope this will help you...
Cheers
Benoit Foucher
Keith/Suzanne Barron wrote:
>
> I have two simple programs, one is a regular java program, the other
> is a java servlet.
> When I try to run the servlet, I get "Could not load database driver".
> Any ideas on why this
> happens?
>
> -Keith
>
> Here are the programs:
>
> 1. regular java program:
>
> import java.io.*;
> import java.sql.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
>
> public class DBPhoneLookup {
>
> public static void main (String args[]) throws
> ClassNotFoundException, FileNotFoundException, IOException,
> SQLException {
>
> try {
> Connection con = null;
> Statement stmt = null;
> ResultSet rs = null;
> String url = "jdbc:postgresql:school";
> String usr = "postgres";
> String pwd = "postgres";
>
> // Load (and therefore register) the Postgres driver
> Class.forName("postgresql.Driver");
>
> // Get a connection to the database
> con = DriverManager.getConnection(url, usr, pwd);
>
> // Create a Statement object
> stmt = con.createStatement();
>
> // Execute an SQL query, get a ResultSet
> rs = stmt.executeQuery("Select first_name from students");
>
> // Display the result set as a list
> while (rs.next()) {
> System.out.println(rs.getString("first_name"));
> }
>
> con.close();
> }
>
> catch(ClassNotFoundException e) {
> System.out.println("Could not load database driver: " +
> e.getMessage());
> }
> }
> }
>
> 2. servlet program:
>
> import java.io.*;
> import java.sql.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
>
> public class DBPhoneLookup
> extends HttpServlet { public void doGet (HttpServletRequest req,
> HttpServletResponse res) throws
> ServletException, IOException {
>
> Connection con = null;
> Statement stmt = null;
> ResultSet rs = null;
> res.setContentType("text/html");
> PrintWriter out = res.getWriter();
>
> try {
> String url = "jdbc:postgresql:school";
> String usr = "postgres";
> String pwd = "postgres";
>
> // Load (and therefore register) the Postgres driver
> Class.forName("postgresql.Driver");
>
> // Get a connection to the database
> con = DriverManager.getConnection(url, usr, pwd);
>
> // Create a Statement object
> stmt = con.createStatement();
>
> // Execute an SQL query, get a ResultSet
> rs = stmt.executeQuery("Select first_name from students");
>
> // Display the result set as a list
> out.println("");
> out.println("");
> out.println("");
> while (rs.next()) {
> out.println(" " + rs.getString("first_name"));
> }
> out.println(" ");
> }
>
> catch(ClassNotFoundException e) {
> out.println("Could not load database driver: " +
> e.getMessage()); }
>
> catch(SQLException e) {
> out.println("SQLException caught: " + e.getMessage()); }
>
> finally {
> // Always close the database connection
> try { if (con != null) con.close(); }
> catch (SQLException ignored) { }
> }
> }
> }