Redskin Geschrieben 14. Oktober 2010 Geschrieben 14. Oktober 2010 Hallo, zum ersten mal bin ich mit Applets unterwegs und schon Probleme! Ich möchte gerne mittels eines Applets auf eine mysql Datenbank zugreifen. Läuft alles local, mysql ist über telnet ansprechbar Verionen: mysql 5.1.41 und connector mysql-connector-java-5.1.13 Wenn ich es NICHT als Applet ausführe, habe ich keine Probleme. Als Applet bekomme ich den folgenden Fehler: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. ---- Weiß der Geier welche Schmerzen er hat. Habe gegoogled hier geschaut.... nichts hat geholfen! Hier der Code-Auszug String driver = "org.gjt.mm.mysql.Driver"; String url = "jdbc:mysql://127.0.0.1:3306/datenbanken?user=root&password="; String user = "root"; String password = ""; try { // Treiber laden Class.forName(driver).newInstance(); } catch(Exception e) { System.err.println(e.getMessage()); System.exit(0); } Connection connection = null; Statement statement = null; try { // Verbindung zur DB connection = DriverManager.getConnection(url, user, password); statement = connection.createStatement(); } catch(SQLException e) { System.err.println(e.getMessage()); } finally { if(statement!=null) { try { statement.close(); } catch(Exception e) {} } if(connection!=null) { try { connection.close(); } catch(Exception e) {} } } Die Adresse "jdbc:mysql://127.0.0.1:3306/datenbanken?user=root&password=" wurde schon varriert - ohne Erfolg! "jdbc:mysql://127.0.0.1:3306""jdbc:mysql://127.0.0.1/datenbanken?user=root&password=""jdbc:mysql://127.0.0.1" Wie gesagt: Als ausführbare Klasse kein Problem, intrigiert in einem Applet "Ende im Gelände" - telnet spricht auch an! PS.: Ja ich weiß root sollte man nicht machen. Ist ja nur zum Testen! Zitieren
Schmarrer Geschrieben 14. Oktober 2010 Geschrieben 14. Oktober 2010 Hi, wenns als Anwendung läuft, aber aus dem Applet nicht, dann tippe ich auf fehlende Berechtigung... Das ist in Applets immer ein bisschen heikel. Du musst dein Applet signieren (jarsigner). Der User bekommt beim Ausführen dann eine Meldung die er bestätigen muss. Zitieren
flashpixx Geschrieben 14. Oktober 2010 Geschrieben 14. Oktober 2010 Bitte einmal nach "Security Manager" googeln Zitieren
Redskin Geschrieben 14. Oktober 2010 Autor Geschrieben 14. Oktober 2010 (bearbeitet) Bitte einmal nach "Security Manager" googeln und was soll mir das sagen? Gibt ja nur 190.000 Treffer und min 1000 verschiedene Bedeutungen bzw. entsprechende Gebiete. Vom blöden Sicherheitsmanager einer Sicherheitsfirma bis hin zu einem IT Portal - KLASSE ;-) Werde mich aber mal in "Class SecurityManager" einlesen ;-) Bearbeitet 14. Oktober 2010 von Redskin Zitieren
Redskin Geschrieben 14. Oktober 2010 Autor Geschrieben 14. Oktober 2010 @Schmarrer Danke für die schnelle Antwort. Daran hatte ich natürlich auch gedacht. Da ich die Geschichte bisher nur von einem Rechner ausführe (mit DB Server und Client) sollte das Sandbox Prinzip hier ja noch nicht packen. Dennoch hatte ich es gerade ausprobiert. Leider mit der gleichen Fehlermeldung! Zitieren
Redskin Geschrieben 14. Oktober 2010 Autor Geschrieben 14. Oktober 2010 Bitte einmal nach "Security Manager" googeln So habe nun mal quer gelesen, werde da aber im Moment noch nicht schlau raus: Es ist mir klar das Applets sehr eingeschränkte Rechte haben. Ohne Zertifizierung läuft eh nichts. Aber auch mit Einschränkungen des vorhandenen Securty Manager sollte es doch möglich sein, eine lokale Verbindung zu einem SQL DB Server aufzunehmen. Müsste ich, wenn es sich hier um einen ein Securtiy Problem handelt keine SecurityException bekommen? - Es scheint mir ja eher ein vErbindungsproblem zu sein, verstehe nur nicht warum. Andere Beispiele mit Applet und jdbc mit mysql laufen aj auch....nur meins net??? Zitieren
flashpixx Geschrieben 14. Oktober 2010 Geschrieben 14. Oktober 2010 Das Applet baut einer Verbindung zu deinem DB Dienst auf, aber generell darf ein Applet nicht einfach "wild" irgendwohin verbinden, d.h. Du musst Dir den aktuell SM in dein Applet holen und dort eine passende Policy (das ist eine Datei) laden, die es erlaubt eben eine Verbindung aufzubauen. Ich habe mich selbst nicht mit dem SM und JDBC auseinander gesetzt, sondern nur mit Sockets, aber da der JDBC ja letztendlich auch einen Clientsocket benötigt wäre das mein Vorgehen Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.