RE: still confuse; no suitable driver

From: Peter Mount <petermount(at)it(dot)maidstone(dot)gov(dot)uk>
To: "'Joe Shevland'" <shevlandj(at)kpi(dot)com(dot)au>, pgsql-interfaces(at)postgresql(dot)org
Subject: RE: still confuse; no suitable driver
Date: 2000-06-28 15:14:12
Message-ID: 1B3D5E532D18D311861A00600865478CF1AFC6@exchange1.nt.maidstone.gov.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

There is an alternative fix for IE that bypasses DriverManager completely
(for some installations DriverManager doesn't work at all).

--
Peter Mount
Enterprise Support
Maidstone Borough Council
Any views stated are my own, and not those of Maidstone Borough Council

-----Original Message-----
From: Joe Shevland [mailto:shevlandj(at)kpi(dot)com(dot)au]
Sent: Wednesday, June 28, 2000 4:06 PM
To: pgsql-interfaces(at)postgresql(dot)org
Subject: RE: [INTERFACES] still confuse; no suitable driver

A few things to be aware of:

i) you're attempting to make the connection from the applet (client browser)
to your host database on 'graphium.xxx.ac.jp', which will throw a security
exception unless you use signed applets because of the applet's security
sandbox (appletviewer can be told to ignore these). Applets are generally
only allowed to make socket connections back to the place they were served
from.

ii) IE has a buggy JVM which requires this workaround:

Class.forName("org.postgresql.Driver").newInstance();

to properly register the driver. I've never encountered this but I've heard
it reported a bit, it may be a red herring.

Regards,
Joe

>-----Original Message-----
>From: pgsql-interfaces-owner(at)hub(dot)org
>[mailto:pgsql-interfaces-owner(at)hub(dot)org]On Behalf Of radifan karami
>Sent: Wednesday, 28 June 2000 11:08 PM
>To: pgsql-interfaces(at)postgresql(dot)org
>Subject: [INTERFACES] still confuse; no suitable driver
>
>
>I'm sory if may question is covered in mailing-list
>archive.
>I found many same questions ( and solutions ) in that
>archive about driver problem when running jdbc-applet
>from browser.
>
>I use Linux, Postgresql 7 and Java 1.2.2.
>
>I'm new commer in Java, and try to make the first
>jdbc-applet code following the tutorial in
>java.sun.com.
>
>It's working perfectly by appletviewer.
>
>I put my applet code ( .class ) and postgresql.jar
>file in the web server ( in my home page ), separate
>from my database in may host.
>For example my homepage is http://www.xxx.ac.jp/~radif
>and my host name is graphium.xxx.ac.jp.
>
>There is an error "Javalang.ClassNotFoudException: No
>suitable driver ", when I run applet from browser.
>
>I read many solutions in archive, but still not
>understand. Please give a simple and clear solution.
>
>** The html code is :
><HTML>
><HEAD>
><TITLE> Query Output </TITLE>
></HEAD>
><BODY>
>Output from query
>select NAME, PRICE from COFFEES
><APPLET CODE="myapplet" ARCHIVE="postgresql.jar"
>width=600 height=300>
></APPLET>
></BODY>
></HTML>
>
>
>** The applet code is :
>import java.applet.Applet;
>import java.awt.Graphics;
>import java.util.Vector;
>import java.sql.*;
>
>public class myapplet extends Applet implements
>Runnable {
> private Thread worker;
> private Vector queryResults;
> private String message = "Initializing";
>
> public synchronized void start() {
> // Every time "start" is called we create a worker
>thread to
> // re-evaluate the database query.
> if (worker == null) {
> message = "Connecting to database";
> worker = new Thread(this);
> worker.start();
> }
> }
>
> /**
> * The "run" method is called from the worker
>thread. Notice that
> * because this method is doing potentially slow
>databases accesses
> * we avoid making it a synchronized method.
> */
>
> public void run() {
> String url =
>"jdbc:postgresql://graphium.xxx.ac.jp/coffeebreak";
> String query = "select COF_NAME, PRICE from COFFEES";
>
> try {
> Class.forName("org.postgresql.Driver");
> } catch(java.lang.ClassNotFoundException ex) {
> setError("Masalah pada driver: " + ex);
> return;
> }
>
> try {
> Vector results = new Vector();
> Connection con =
>DriverManager.getConnection(url,"my", "");
> Statement stmt = con.createStatement();
> ResultSet rs = stmt.executeQuery(query);
> while (rs.next()) {
> String s = rs.getString("COF_NAME");
> float f = rs.getFloat("PRICE");
> String text = s + " " + f;
> results.addElement(text);
> }
>
> stmt.close();
> con.close();
>
> setResults(results);
>
> } catch(SQLException ex) {
> setError("SQLException: " + ex);
> }
> }
>
> /**
> * The "paint" method is called by AWT when it
>wants us to
> * display our current state on the screen.
> */
>
> public synchronized void paint(Graphics g) {
> // If there are no results available, display the
>current message.
> if (queryResults == null) {
> g.drawString(message, 5, 50);
> return;
> }
>
> // Display the results.
> g.drawString("Prices of coffee per pound: ", 5, 10);
> int y = 30;
> java.util.Enumeration enum = queryResults.elements();
> while (enum.hasMoreElements()) {
> String text = (String)enum.nextElement();
> g.drawString(text, 5, y);
> y = y + 15;
> }
> }
>
> /**
> * This private method is used to record an error
>message for
> * later display.
> */
>
> private synchronized void setError(String mess) {
> queryResults = null;
> message = mess;
> worker = null;
> // And ask AWT to repaint this applet.
> repaint();
> }
>
> /**
> * This private method is used to record the
>results of a query, for
> * later display.
> */
>
> private synchronized void setResults(Vector
>results) {
> queryResults = results;
> worker = null;
> // And ask AWT to repaint this applet.
> repaint();
> }
>}
>
>
>Thank you & regard,
>
>-Radifan-
>
>
>__________________________________________________
>Do You Yahoo!?
>Get Yahoo! Mail - Free email you can access from anywhere!
>http://mail.yahoo.com/
>

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Dnesbitt 2000-06-28 16:38:14 JDBC Driver support for SQLException.getSQLState()
Previous Message Joe Shevland 2000-06-28 15:05:54 RE: still confuse; no suitable driver