Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Probleme mit JApplet

0 views
Skip to first unread message

Boris Kantwerk

unread,
Jan 26, 2002, 8:48:12 PM1/26/02
to
Hi!

Warum bekommen ich bei meinem JApplet (JRE 1.3.1_01) eine Nullpointer
Exception beim Methodenaufruf getDocumentBase().

Grüße,
B. Kantwerk.


Lothar Kimmeringer

unread,
Jan 26, 2002, 9:16:58 PM1/26/02
to
Boris Kantwerk wrote:
>
> Warum bekommen ich bei meinem JApplet (JRE 1.3.1_01) eine Nullpointer
> Exception beim Methodenaufruf getDocumentBase().

In welchem Browser/Appletviewer laesst Du das denn laufen?


Gruesse, Lothar

Boris Kantwerk

unread,
Jan 27, 2002, 6:38:15 AM1/27/02
to
> > Warum bekommen ich bei meinem JApplet (JRE 1.3.1_01) eine Nullpointer
> > Exception beim Methodenaufruf getDocumentBase().
>
> In welchem Browser/Appletviewer laesst Du das denn laufen?

Der Fehler tritt im IE 6 sowie im Appletviewer des JDK 1.3.1_01 auf. Zur
weiteren Info: das ganze soll (a) eine Applikation und (b) ein Applet
werden. Da ich properties zur Konfiguration verwende, liegt die
Properties-Datei also entweder lokal (mit java -DPropertiesFile=...) oder in
der Codebase.

Es gibt zwei Konstrukturen für die Applikation:

public MainFrame() {
PropertiesLoader.loadProperties();
init();
}

public MainFrame(JApplet applet) {
PropertiesLoader.loadProperties(applet);
init();
}

Die zweite wird dementsprechend durch
MainFrame mainFrame = new MainFrame(this);
im JApplet initialisiert.

In loadProperties tritt der oben beschriebene Fehler dann auf:

public static void loadProperties(JApplet currentApplet) {
String fullFileName = "";
properties = new Properties();

if (currentApplet != null) {
fullFileName = currentApplet.getDocumentBase() +
propertiesFilename;
} else {
fullFileName = "file:///" +
System.getProperty("PropertiesFile");
}


Jörn Haferstroh

unread,
Jan 27, 2002, 7:03:37 AM1/27/02
to
"Boris Kantwerk" <big...@kantwerk.de> schrieb im Newsbeitrag
news:a2vm8s$52o$05$1...@news.t-online.com...

> Hi!
>
> Warum bekommen ich bei meinem JApplet (JRE 1.3.1_01) eine Nullpointer
> Exception beim Methodenaufruf getDocumentBase().

Nach meiner Erfahrung brauchst du zum Testen des Applets einen lokal
installierten Webserver und mußt das Applet über den Webserver beziehen.
Ansonsten hat das Applet keinen AppletContext/AppletStub, wodurch
getDocumentBase und ein paar andere Funktionen auf einen Nullpointer
auflaufen.

Jörn


Boris Kantwerk

unread,
Jan 27, 2002, 7:21:37 AM1/27/02
to
> Nach meiner Erfahrung brauchst du zum Testen des Applets einen lokal
> installierten Webserver und mußt das Applet über den Webserver beziehen.
> Ansonsten hat das Applet keinen AppletContext/AppletStub, wodurch
> getDocumentBase und ein paar andere Funktionen auf einen Nullpointer
> auflaufen.

Ich habe hier Entwicklungsmaschinen. Ich beziehe das Applet über mein LAN
von Linux / Apache. Daran kann es also nicht liegen.


Lothar Kimmeringer

unread,
Jan 27, 2002, 7:30:47 AM1/27/02
to
Boris Kantwerk wrote:
>
> Es gibt zwei Konstrukturen für die Applikation:
>
> public MainFrame() {
> PropertiesLoader.loadProperties();
> init();
> }

machs doch sauberer mit
this(null);

dann brauchst Du das Zeug nicht zweimal schreiben.

> if (currentApplet != null) {
> fullFileName = currentApplet.getDocumentBase() +
> propertiesFilename;

Wie genau ist denn der StackTrace? Tritt der wirklich innerhalb
von getDocumentBase() auf?


Gruesse, Lothar

Boris Kantwerk

unread,
Jan 27, 2002, 7:41:53 AM1/27/02
to
> Wie genau ist denn der StackTrace? Tritt der wirklich innerhalb
> von getDocumentBase() auf?

Habe zur Fehlersuche mittlerweile nur folgendes JApplet:

public HTApplet() {
initMyComponents();
}

private void initMyComponents() {

try {
getAppletContext().showDocument((new
java.net.URL("http://blalbla/")),"_blank");
} catch (Exception e) {
e.printStackTrace();
}
}

Stacktrace:
java.lang.NullPointerException
at java.applet.Applet.getAppletContext(Unknown Source)
at com.orworld.hypertree.HTApplet.initMyComponents(HTApplet.java:32)
at com.orworld.hypertree.HTApplet.<init>(HTApplet.java:22)
at java.lang.Class.newInstance0(Native Method)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Lothar Kimmeringer

unread,
Jan 27, 2002, 7:48:05 AM1/27/02
to
Boris Kantwerk wrote:
>
> > Wie genau ist denn der StackTrace? Tritt der wirklich innerhalb
> > von getDocumentBase() auf?
>
> Habe zur Fehlersuche mittlerweile nur folgendes JApplet:

Lass mal die Init-Sachen aus dem Konstruktor heraus. Die
Methode, die bei einem Applet interessant ist, ist die
init()-Methode. Ich kann mir vorstellen, dass AppletStub
und AppletContext erst nach der Initialisierung vom
Viewer gesetzt werden und Du damit bei einem getDocumentBase
oder showDocument innerhalb des Konstruktors (oder in
Methoden, die vom Konstruktor aufgerufen werden) auf
Probleme stossen wirst.

Statt

> public HTApplet() {
> initMyComponents();
> }

mach

public init(){
initMyComponents();
}


Gruesse, Lothar

Lothar Kimmeringer

unread,
Jan 27, 2002, 7:50:59 AM1/27/02
to
Ich mach nicht gern den Ingrid, aber hier notwendig:

Lothar Kimmeringer wrote:
>
> public init(){
> initMyComponents();
> }

Besser

public init(){
super.init();
initMyComponents();
}


Gruesse, Lothar

Boris Kantwerk

unread,
Jan 27, 2002, 8:13:39 AM1/27/02
to
> public init(){
> super.init();
> initMyComponents();
> }

GENAU!!!

Ich danke Dir recht herzlich für Deine Hilfe.

Grüße Boris.


0 new messages