Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: thorsten_w am 06.01.06 - 12:22:45

Titel: Fehler im Browser aber nicht im Appletviewer ?
Beitrag von: thorsten_w am 06.01.06 - 12:22:45
Hallo @All,

ich weiß ich bin hier nicht ganz richtig mit meiner Frage.
Aber vielleicht hat hier jemand eine Idee.


Ich habe ein Applet. In diesem gibt es die Klasse Optionbox, welche eine erweiterte Checkbox ist. Darin soll ein Item State Change bearbeitet werden.

Das sieht wie folgt aus:
Code
	public void itemStateChanged(ItemEvent e) {
		URL base = parent.getDocumentBase();

		String path = base.getPath();
		String file = base.getFile();
		

                                ......
	}

Wenn ich das ganze in einem Applet-Viewer starte, dann funktioniert es einwandfrei.
Wenn ich das Applet mit einem Browser (IE 6.0) starte, dann kommt diese Fehlermeldung:

Code
Microsoft (R) VM for Java, 5.0 Release 5.0.0.3802
==============================================
?  Hilfe
c  Löschen
f  abschließen
g  bereinigter Speicher
m  Speicherverwendung
q  verlassen
t  Thread-Liste
==============================================
Exception occurred during event dispatching:
java.lang.NoSuchMethodError: java/net/URL: method getPath()Ljava/lang/String; not found
	at de/applets/Optionbox.itemStateChanged
	at java/awt/Checkbox.processItemEvent
	at java/awt/Checkbox.processEvent
	at java/awt/Component.dispatchEventImpl
	at java/awt/Component.dispatchEvent
	at java/awt/EventDispatchThread.run

warum? Jemand eine Idee? Oder bin ich mal wieder zu blöd das zu checken?

Gruss Thorsten

PS: meine Entwicklungsumgebung ist Eclipse SDK Java 1.4.2
Titel: Re: Fehler im Browser aber nicht im Appletviewer ?
Beitrag von: Ralf_M_Petter am 09.01.06 - 15:02:52
Ich kann es jetzt nicht mehr überpüfen, da die Dokus für so alte Releases nicht mehr verfügbar ist. Aber ich gehe davon aus, dass das JDK das die uralte MS JVM verwendet, die Methode getPath bei einer URL nicht kennt. Ähnliches gibt es auch bei der Klasse Vector. Ist aber nur eine Vermutung.

Kannst du einfach testen, in dem du mal in deinem Browser Java vom Java Plugin erledigen lässt. Diese MS JVM ist einfach nicht mehr state of the art.

Grüße

Ralf
Titel: Re: Fehler im Browser aber nicht im Appletviewer ?
Beitrag von: Thomator am 12.01.06 - 18:45:52
Hi,
also mir persönlich wäre es neu, dass Methoden von älteren JVM-Versionen nicht mehr vorhanden sind. Die werden doch nur als 'deprecated' gekennzeichnet, oder?

Ich habe in diesem Fall eigentlich eher das Gefühl, dass in dem verschiedenen Kontext der Inhalt der 'parent'-Variable verschiedene Objecte sind.

Lass Dir doch in beiden Fällen mal ausgeben, welche Klasse hinter dem parent-Object steckt.

@Ralf:
Bei der Klasse Vector ist das ähnlich: Du kannst in neueren Versionen der JVM auch noch die Methoden wie addElement() nutzen, obwohl es auch add() schon tut. Zumindest is in der Konsole ersichtlich, dass die JVM-Version 5.0 ist. Das ist nicht wirklich alt...

Oder hab ich hier was falsch verstanden?

Thomas
Titel: Re: Fehler im Browser aber nicht im Appletviewer ?
Beitrag von: flaite am 12.01.06 - 21:03:08
So könntest du die Klasse herausfinden:
Mach mal:
Code
public void itemStateChanged(ItemEvent e) {
System.out.println("Class parent=" + parent.getClass().getName()); 
URL base = parent.getDocumentBase();

String path = base.getPath();
String file = base.getFile();


                                ......
}

Möglicherweise weitere Informationen hier (inklusive Workaround):
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4214785

Wofür brauchst du diese path und file Strings. Möglicherweise gibt es einen Workaround.
Es ist auf jeden Fall sehr merkwürdig.


Titel: Re: Fehler im Browser aber nicht im Appletviewer ?
Beitrag von: Ralf_M_Petter am 13.01.06 - 07:34:49
@Thomas!

Ja das hast du oder möglicherweise auch ich falsch verstanden. Ich habe es so verstanden, dass es im Appletviewer aus der IDE vermutlich 1.4.2 geht und im IE mit der MS JVM die ja glaube ich noch nicht mal Java 2 sondern irgendwas mit 1.1 ist nicht geht. Also ist es z.B. beim Vector so, dass man addElement nehmen muß und nicht die mit Java 2 eingeführten Methoden.

Was du weiter schreibst, dass parent verschiedene Objekte sind, dass kann nicht sein, denn dann müsste er ja schon bei parent.getDocumentBase() scheitern. die Methoden getPath() sind ja von der Klasse URL

Eventuell kann Thorsten das mal klarstellen, damit man nicht raten muß.


Grüße

Titel: Re: Fehler im Browser aber nicht im Appletviewer ?
Beitrag von: flaite am 13.01.06 - 09:29:59
Da hab ich mich gestern verguckt und Verwirrung gestiftet.
Eigentlich müßtest du testen
Code
 
base.getClass().getName(); 
... und das ist bestimmt java.net.URL nur unterschiedlich implementiert.
Ich hab das Gefühl, dass dies etwas mit den von mir geposteten Link zur Bug-Datenbank zu tun hat.