Re: jdbc works in java app, fails in servlet: "no suitable jdbc found"

Поиск
Список
Период
Сортировка
Искать
От
philfrei@aol.com
Тема
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found"
Дата
Msg-id
8CCD0CAC9B7220C-D8C-4F1C@webmail-d098.sysops.aol.com
Ответ на
Список
Дерево обсуждения
jdbc works in java app, fails in servlet: "no suitable jdbc found" philfrei@aol.com
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" Craig Ringer <craig@postnewspapers.com.au>
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" philfrei@aol.com
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" Craig Ringer <craig@postnewspapers.com.au>
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" philfrei@aol.com
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" John R Pierce <pierce@hogranch.com>
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" Lew <noone@lewscanon.com>
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" philfrei@aol.com
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" Lew <noone@lewscanon.com>
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" Manohar Bhattarai <manoharbhattarai@gmail.com>
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" Craig Ringer <craig@postnewspapers.com.au>
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" Guy Rouillier <guyr-ml1@burntmail.com>
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" Lew <noone@lewscanon.com>
Re: jdbc works in java app, fails in servlet: "no suitable jdbc found" Craig Ringer <craig@postnewspapers.com.au>
Thank you for the reply!

>You need to preload the PostgreSQL driver...

Being new to this, I find myself second-guessing words as simple as 
"preload". The servlet "NearbyTest" has a constructor and a single 
method "doGet" which is invoked by an HTML page. As the first working 
statement in the "doGet" method (at this point everything else is 
commented out), I tried using the recommended statements. Both of them 
elicited the same error message:

try {
//  Class.forName("org.postgresql.Driver");
    this.getClass().getClassLoader().loadClass("org.postgresql.Driver");
} catch (ClassNotFoundException e1) {
    e1.printStackTrace();
}

java.lang.ClassNotFoundException: org.postgresql.Driver
    at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.
java:1516)
    at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.
java:1361)
    at nearbyGPS.NearByTest.doGet(NearByTest.java:59)
    ...

---where nearbyGPS is the package and NearByTest is the servlet class.

As an experiment I tried importing the Driver class directly, e.g.:

import org.postgresql.*;
--and the form--
import org.postgresql.Driver;

These import statements both compile without complaint. But the same 
error occurs. I'm afraid that there must be something rather 
fundamental that I am missing. Is there another stage (prior to the 
servlet's "doGet") at which the "preloading" should occur?

I just tried placing the recommended connection code in the 
constructor, and get exactly the same error message and stack trace.

Eclipse has the option of right-clicking the project and selecting 
"Configure Build Path". On this project, the PostgreSQL JDBC driver is 
listed alongside the JRE and Apache libraries.

The stack trace indicates code that is part of Apache. Is there 
possibly something that has to be configured in Apache that is missing?

Many, many thanks in advance.

++++++++++++++++++++++++++++++++++++++++++++++++++++

>On 02/06/10 12:56, philfrei@aol.com wrote:
>> Hi - I am new to Postgresql (and Eclipse and Tomcat--triple 
threat),and
>> would have posted this question in the general section, but thought 
it
>> might be more appropriate here since it concerns the JDCB.
>>
>> I have successfully installed and run some example programs from Core
>> Java II by Horstmann. I wish to connect to a database from a Java
>> Servlet, and tried using the same code and properties as is being 
used
>> in a Java application program (which successfully connects to the 
same
>> db), but am getting the following error when executing the
>> DriverManager.getConnection(url, username, password) code:
>>
>> java.sql.SQLException: No suitable driver found for 
jdbc:postgresql:gpsdata
>
>The JRE's JDBC is complaining that it doesn't know what to do with URLs
>of type 'jdbc:postgresql'. This means that the PostgreSQL JDBC driver
>hasn't been loaded.
>
>You need to preload the PostgreSQL driver, org.postgresql.Driver , to
>register it with JDBC so that JDBC knows to use it for 'postgresql' 
URLs.
>
>Load the JDBC driver with with 'Class.forName' if it's on the System
>classpath, or (preferably) the classloader that loaded your servelet.
>
>> Is a different driver needed in the "Servlet" context?
>
>No, but you might need to load it differently if your container doesn't
>use the system classloader.
>
>You can use the classloader that loaded the currently running object 
with:
>
>  this.getClass().getClassLoader().loadClass('org.postgresql.Driver');
>
>--
>Craig Ringer
>
>Tech-related writing: http://soapyfrogs.blogspot.com/
>
В списке pgsql-jdbc по дате отправления
От: Lew
Дата:
От: Jeffrey Baker
Дата:
Сообщение: Re: JDBC SSL with postgresql
FAQ