Applet/MySQL Problem

flo_hr

Mitglied
Ich hab ein Applet geschrieben und greife dadrin auf eine Datenbank zu.
Wenn ich mir das Applet im AppletViewer von NetBeans anschaue funktioniert der Datenbankzugriff.
Allerdings wenn ich das Applet auf ein Tomcat Server packe und dann das Applet aufrufe funktioniert es nicht mehr.

Folgender Fehler tritt auf:
java.sql.SQLException: Unable to connect to any hosts due to exception: java.security.AccessControlException: access denied (java.net.SocketPermission xxx resolve)
xxx = der Servername

Ich habe/hatte die Vermutung, da ja Applets nicht die Rechte haben um sich mit Netzwerkrechner zu verbinden, usw., das es deswegen nicht funktioniert.
Also habe ich mir ein eigenes Zertifikat erstellt und das Applet signiert (also das jar File).

wenn ich es jetzt im Browser aufrufe bekomm ich auch die Meldungen ob ich dem "Hersteller" vertrauen will.

habe ja gesagt, aber trotzdem net.


KANN MIR DA JEMAND HELFEN?

Gruss
Flo
 
Code:
public Eintrag(){
        try {
            //Class.forName("org.gjt.mm.mysql.Driver").newInstance();
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            conn = DriverManager.getConnection("jdbc:mysql://[Servername]", "azubi", "ibuza");
            stmt = conn.createStatement();
            rs=null;
        } catch(Exception ex) {
            ex.printStackTrace();
        }
    }

Das ist jetzt nur der Teil wo die Verbindung hergestellt wird.
 
ich hab jetzt auch ne lösung gefunden.

Ich habe die "java.policy" die im "jre1.5.0_07" liegt angepasst.

Code:
grant{
permission java.net.SocketPermission "*","connect,accept";
};

das problem an der sache ist, ich müsste an jedem rechner wo das applet genutzt werden soll die java.policy anpassen.

gibt es da nciht eine möglichkeit das ich eine neue .policy schreibe und dann die .policy datei irgendwie im html tag angebe.

oder hat jemand ne ganz andere idee.

ich bitte um hilfe :) sonst verzweifel ich noch hier dran *G

danke
 
Ich glaube im Forum findest du genug zum Thema.

Das Problem ist, ein Applet kann nur eine Verbindung zu dem Server aufbauen, von dem aus es gestartet wurde. Das heißt, der SQL-Server sowie der HTTP-Server müssen die selbe Adresse haben.

Sieh dir evtl. mal die Methoden getCodeBase() und getHost() an.

Die andere Möglichkeit wäre, dein Applet signieren zu lassen. Dazu benutzt du einfach das Tool jarsigner.exe in deinem JDK-Bin Verzeichnis.
 

Neue Beiträge

Zurück