Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Interpreter-FehlerJavaApplet läuft in der IDE aber nicht im HTML Dokument
ich habe nun endlich mein ersten Java Applet fertig gestellt und wollte es nun in eine HTML Datei einbetten. Jedoch läuft es irgendwie nicht, die Java Console gibt mir folgenden Fehler aus
Code:
java.security.AccessControlException: access denied (java.net.SocketPermission 172.30.122.84:10001 connect,resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at HeMeter.SendCommand(HeMeter.java:333)
at HeMeter.init(HeMeter.java:106)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Ausnahme: java.security.AccessControlException: access denied (java.net.SocketPermission 172.30.122.84:10001 connect,resolve)
In Zeile 333 wird der Socket geöffnet
[JAVA=333]Socket s = new Socket(host, Port);[/code]
Aber wieso AccessDenied? Wenn ich das Applet aus der IDE starte (Eclipse Helios Service Release 1 Build id: 20100917-0705) funktioniert alles wie es soll.
In das Verzeichnis wo auch die HTML Datei liegt habe ich alles aus dem /bin ordner reinkopiert. Das ist zum einen die Hauptklasse und dann noch die Unterklassen + die Datei "java.policy.applet" in der steht
Code:
/* AUTOMATICALLY GENERATED ON Tue Apr 16 17:20:59 EDT 2002*/
/* DO NOT EDIT */
grant {
permission java.security.AllPermission;
};
Ich hoffe mir kann jemand helfen, bzw. sagen was ich hier falsch mache.
Okay vielen Dank für die Antwort, das hilft mir nur bedingt weiter.
Ich werde das gleich mal mit dem Zertifikat testen, aber das Applet welches ich erstellt habe ist sozusagen eine Kopie von einem vorhandenen, also komplett neu geschrieben und viel übersichtlicher und so.
Das vorige Applet hat keine solche Zertifizierung gebraucht, obwohl es auch auf IP und Ports zu greift?
Wie kann das sein?
Vielleciht wurde es eben nicht mit einem selbsterstellten Zertifikat signiert... oder er hat das selbsterstellte Zertifikat als Permanenete Ausnahme importiert, oder oder oder... jedenfalls ist was du möchtest nicht möglich ohne Zertifizierung.
War das nicht so, dass die unsignierten Applets zu dem Server, von dem sie geladen sind, eine Verbindung aufbauen können? Vllt hast du für Testzwecke ja genau das benutzt.
Achso, ja das natürlich verständlich, auf den "Server" von wo aus ich das Applet starte, greife ich auch zu. Aber zum Testen habe ich es natürlich erstmal lokal gemacht.
Okay vielen Dank, also brauche ich nur um es lokal zu testen das Zertifikat.
Das ist richtig, aber dazu müsste man erstmal wissen nach was man suchen muss, ich dachte zuerst eher an einen Programmierfehler.
Dass das so ein allgemeines Problem is konnte ich ja noch nicht ahnen =)