Обсуждение: Unable to run Applets with appletviewer

Поиск
Список
Период
Сортировка

Unable to run Applets with appletviewer

От
Francisco Villavicencio
Дата:
Dear Sirs:

I was trying to run Sample Code 7 an 8 from JDBC Database Access with
Java from Graham Hamilton, against a Postgres 7.3 database "Test" and I
have the following error message:

java.lang.NoClassDefFoundError: org/postgresql/Diriver

The ful code Iwas using is

/*
 * Copyright 2003 Sun Microsystems, Inc.  ALL RIGHTS RESERVED.
 * Use of this software is authorized pursuant to the terms of the
license found at
 * http://developer.java.sun.com/berkeley_license.html.
 */

/**
 * This is a demonstration JDBC applet.
 * It displays some simple standard output from the Coffee database.
 */

import java.applet.Applet;
import java.awt.Graphics;
import java.util.Vector;
import java.sql.*;

public class OutputApplet 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:test";
    String query = "select * from uno";

    try {
        Class.forName("org.postgresql.Driver");
    } catch(Exception ex) {
        setError("Can't find Database driver class: " + ex);
        return;
    }

    try {
        Vector results = new Vector();
        Connection con = DriverManager.getConnection(url,
                        "postgres", "");
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery(query);
        while (rs.next()) {
        String s = rs.getString("a");
        int f = rs.getInt("b");
        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();
    }
}


and the html file

/*
 * Copyright 2003 Sun Microsystems, Inc.  ALL RIGHTS RESERVED.
 * Use of this software is authorized pursuant to the terms of the
license found at
 * http://developer.java.sun.com/berkeley_license.html.
 */

<HTML>
<HEAD>
<TITLE> Query Output </TITLE>
</HEAD>
<BODY>

Output from query
select NAME, PRICE from COFFEES
<APPLET CODE="OutputApplet.class" WIDTH=250 HEIGHT=200>
</APPLET>
</BODY>
</HTML>


After compiling with javac I ran

appletviewer OutputApplet.html

and had the above message.

Can You help me to solve the problem?

Thanks.

Francisco.



Re: Unable to run Applets with appletviewer

От
"Jordan S. Jones"
Дата:
Francisco,

With my limited knowledge, the first thing you are going to want to do,
is ensure that the Postgres JDBC JAR is in your classpath.

Jordan S. Jones

Francisco Villavicencio wrote:

> Dear Sirs:
>
> I was trying to run Sample Code 7 an 8 from JDBC Database Access with
> Java from Graham Hamilton, against a Postgres 7.3 database "Test" and
> I have the following error message:
>
> java.lang.NoClassDefFoundError: org/postgresql/Diriver
> [snip]
> After compiling with javac I ran
>
> appletviewer OutputApplet.html
>
> and had the above message.
>
> Can You help me to solve the problem?
>
> Thanks.
>
> Francisco.
>

--
I am nothing but a poor boy. Please Donate..

https://www.paypal.com/xclick/business=list%40racistnames.com&item_name=Jordan+S.+Jones&no_note=1&tax=0¤cy_code=USD



Re: Unable to run Applets with appletviewer

От
"Blankz-Boy"
Дата:
Francisco Villavicencio <fvill@server.epn.edu.ec> wrote:

>I was trying to run Sample Code 7 an 8 from JDBC Database >Access with
>Java from Graham Hamilton, against a Postgres 7.3 >database "Test" and I
>have the following error message:

>java.lang.NoClassDefFoundError: org/postgresql/Diriver

your code is absolutely fine, i suppose you haven't
installed the JDBC jar driver correctly.
Just try to fix that, and don't forget use the JDBC driver
that match with your JDK.

===========================================================================================
"Instan Diskon Setiap Hari"...
Setiap hari jam 10 malam sampai jam 7 pagi
Dan setiap Hari Libur..
berlaku mulai 1 September - 31 Desember 2003,
Khusus Jawa Timur...
===========================================================================================

Re: Unable to run Applets with appletviewer

От
janteegen@web.de (Jan Teegen)
Дата:
Hello Francisco,
i hope you can understand by bad english.
There are two things in your Applet which are incorrect.
At first you have to download and install a JDBC Driver for your
postgres database (http://jdbc.postgresql.org). The install manual at
this side is for Java-Applications. That means that you have to
install the driver in the directory where your Java JDK is on your
harddisk (it's just a jar-File).
But in an Applet will be called from anyone from the internet with a
webbrowser. And in the JRE of the webrowser is no JDBC driver for
postgres. So you have to extract the jar-File of the JDBC driver to
your path of the harddisk where yours Applet class is.
I don't know if i'am right but i think your applet is not certified.
An applet has no access to the Network or to the Filesystem if it is
not certified.
If you want only test how a Database work with Java so you should take
an application. An application has access to the Network and so on.
There are no limits. But if you want an applet you have to sign it.
this is a not easy process at the beginning. If you want so, i can
give some advise to sign an applet.

Jan