Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Fehler im Browser aber nicht im Appletviewer ?
thorsten_w:
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();
......
}
--- Ende Code ---
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
--- Ende Code ---
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
Ralf_M_Petter:
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
Thomator:
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
flaite:
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();
......
}
--- Ende Code ---
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.
Ralf_M_Petter:
@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
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln