Re: [INTERFACES] [Fwd: postgresql JDBC driver question] - Mailing list pgsql-interfaces

From Murad Nayal
Subject Re: [INTERFACES] [Fwd: postgresql JDBC driver question]
Date
Msg-id 36380316.6A43FF15@godel.bioc.columbia.edu
Whole thread Raw
In response to Re: [INTERFACES] [Fwd: postgresql JDBC driver question]  (Peter T Mount <peter@retep.org.uk>)
List pgsql-interfaces
Peter T Mount wrote:

> On Wed, 28 Oct 1998, Murad Nayal wrote:
>
> > > I am baffled:
> > >
> > > I wrote a small java program to test postgresql jdbc driver. the applet
> > > runs fine locally using applet viewer. indicating that the driver is
> > > recognizing the url and responding to it correctly. however I get the
> > > message "NO suitable Driver" when the applet is run from a remote
> > > browser. the Class.forName("postgresql.Driver"); does not produce an
> > > exception leading me to believe that the Driver is found but it is not
> > > accepting the url (same one that worked locally)?
>
> Ok, applets can be horrible little things, and sometimes it's not their
> fault. Nine times out of ten it's the sandbox (applet security), or a
> browser not handling java 1.1 or jdbc (some don't know about jdbc :-( )
>
> Your code looks ok. I placed your URL into an application here, and all I
> got was:
>
> Connection failed: java.net.UnknownHostException:  godel.bioc.columbia.edu
>
> which is ok, as I wasn't connected at the time ;-)
>
> > > <Applet code="JDBCtest.class" archive=postgresql.jar width=300
> > > height=300> </Applet>
>
> As far as I can see, your problem is here.
>
> First, don't put .class in the code argument. It can break some browsers.
> Technically it's the class name that goes here, not the file name.
>
> The main problem is the archive argument. The browser is loading the
> postgresql.jar file, looking for the JDBCtest class. It fails, so it then
> looks at the directory that the html file is in. It find's JDBCtest, but
> as it's not in the jar file, some browsers implementations of the
> "Sandbox" prevents the driver to be found.
>
> There are two solutions:
>
>         extract the files from postgresql.jar into your html directory
>
> or
>
>         create a new jar file containing the contents of postgresql.jar
>         and your applet.
>
> Remember: it's important to keep the directory structure.

Thank you for your suggestions. I followed your directions by unzipping the
jar file in the html directory, removed the archive attribute from the
<applet> tag and remove the class extension from the code attribute in the
applet tag. Now netscape produces: user authentication failed exception while
internet explorer produces No suitable driver exception. Mind you, the
connection works just fine if you do it using the appletviewer locally on the
machine. I am including next a copy of the html and the java files with just
the user password obsecured (you have to trust me it does work :-)).

thanks indeed for any suggestions and help


URL:
http://godel.bioc.columbia.edu/~secourse/JDBCtest.html

JDBCtest.html:

<html>
<head>
<title>Java Database Connectivity Test</title>
</head>
<body>

Enter one of the following company symbols:
SGI, CCI, CMB. A bit of a small database I know.

<Applet code="JDBCtest" width=300 height=300> </Applet>
</html>


JDBCtest.java

import java.sql.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.*;

public class JDBCtest extends Applet implements ActionListener {

  String url = "jdbc:postgresql://godel.bioc.columbia.edu:1212/stockprices";
  String usr = "murad";
  String pwd = "*******";

  Connection con;
  Statement stmt;
  ResultSet res;

  static final String DOIT = "GETPRICE";
  TextField price;
  TextField symbol;
  TextField stat;
  Label thesymbol;
  Label theprice;
  Button doit;

  public void init() {

    try {

      Class.forName("postgresql.Driver");
      System.out.println("After class loading");
      con = DriverManager.getConnection(url, usr, pwd);
      System.out.println("After connection");
      stmt = con.createStatement();

    } catch (Exception e) {
      System.out.println("Just caught an exception");
      System.out.println(e.getMessage());
      e.printStackTrace();
    }


    price     = new TextField(20);
    price.setEditable(false);

    stat      = new TextField(20);
    stat.setEditable(false);

    symbol    = new TextField(20);
    thesymbol = new Label("Stock symbol");
    theprice  = new Label("Stock price");

    doit      = new Button("Get price");
    doit.addActionListener(this);
    doit.setActionCommand(DOIT);

    setLayout(new GridLayout(3,2));
    add(thesymbol);
    add(symbol);
    add(theprice);
    add(price);
    add(doit);
    add(stat);
    validate();
  }

  public void actionPerformed(ActionEvent e) {
    String command = e.getActionCommand();

    if(command == DOIT) {
      String query;
      float stockprice=0;
      String secsym = symbol.getText();
      stat.setText("Contacting database. please wait");
      try {

        query = "Select price FROM stockinfo WHERE symbol = \'";
        query += secsym + "\';";
        res = stmt.executeQuery(query);
        while(res.next()) {
          stockprice = res.getFloat("price");
        }
        price.setText(String.valueOf(stockprice));
        stat.setText("Updated price");

      } catch (Exception ee) {
        System.out.println("Just caught an exception");
        System.out.println(ee.getMessage());
        ee.printStackTrace();
      }
    }
  }

  public void destroy() {
    try {
      stmt.close();
      con.close();
    } catch (Exception ee) {
      System.out.println("Just caught an exception");
      System.out.println(ee.getMessage());
      ee.printStackTrace();
    }
  }

}


--
Murad Nayal M.D. Ph.D.
Department of Biochemistry and Molecular Biophysics
College of Physicians and Surgeons of Columbia University
630 West 168th Street. New York, NY 10032
Tel: 212-305-6884       Fax: 212-305-6926




pgsql-interfaces by date:

Previous
From: "Thomas G. Lockhart"
Date:
Subject: Re: [INTERFACES] Does "constraint" and "check" work in 6.3.2 ?
Next
From: Andrea Antibo
Date:
Subject: Re: [INTERFACES] applet don't go