Re: [INTERFACES] Problem loading jdbc driver in servlet, but not in program - Mailing list pgsql-interfaces
From | Benoit Foucher |
---|---|
Subject | Re: [INTERFACES] Problem loading jdbc driver in servlet, but not in program |
Date | |
Msg-id | 373DC09D.772323F5@ooc.com Whole thread Raw |
In response to | Problem loading jdbc driver in servlet, but not in program (Keith/Suzanne Barron <keith@barron.com>) |
List | pgsql-interfaces |
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) { } > } > } > }
pgsql-interfaces by date: