Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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!

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.

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 von Redskin

@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!

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???

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.