Received: from www.kpi.com.au (www.kpi.com.au [203.39.132.210]) by hub.org (8.10.1/8.10.1) with ESMTP id e5T2FJ147226 for ; Wed, 28 Jun 2000 22:15:19 -0400 (EDT) Received: from grail (www.kpi.com.au [203.39.132.210]) by www.kpi.com.au (8.9.3/8.9.3) with SMTP id MAA21524; Thu, 29 Jun 2000 12:15:19 +1000 (EST) (envelope-from shevlandj@kpi.com.au) From: "Joe Shevland" To: "Peter Mount" , Subject: RE: still confuse; no suitable driver Date: Thu, 29 Jun 2000 12:16:47 +1000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Importance: Normal In-Reply-To: <1B3D5E532D18D311861A00600865478CF1AFC6@exchange1.nt.maidstone.gov.uk> Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by hub.org id e5T2FL147922 X-Archive-Number: 200006/125 Involving a DataSource and the JDBC standard extension? >-----Original Message----- >From: pgsql-interfaces-owner@hub.org >[mailto:pgsql-interfaces-owner@hub.org]On Behalf Of Peter Mount >Sent: Thursday, 29 June 2000 1:14 AM >To: 'Joe Shevland'; pgsql-interfaces@postgresql.org >Subject: RE: [INTERFACES] still confuse; no suitable driver > > >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@kpi.com.au] >Sent: Wednesday, June 28, 2000 4:06 PM >To: pgsql-interfaces@postgresql.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@hub.org >>[mailto:pgsql-interfaces-owner@hub.org]On Behalf Of radifan karami >>Sent: Wednesday, 28 June 2000 11:08 PM >>To: pgsql-interfaces@postgresql.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 : >> >> >> Query Output >> >> >>Output from query >>select NAME, PRICE from COFFEES >>>width=600 height=300> >> >> >> >> >> >>** 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/ >> >