2 Stimmen

Java - Kann sich mit dem MySQL-Server in NetBeans verbinden, funktioniert jedoch nicht als Applet

Ich versuche, eine Verbindung zu einem MySQL-Server herzustellen (der derzeit auf dem gleichen Rechner ist, da ich mich derzeit mit localhost verbinde (ich benutze Windows und habe Apache, PHP, Mysql und phpmyadmin installiert), aber ich kann problemlos eine Verbindung zum Server herstellen, auf dem die Anwendung in Netbeans läuft, aber wenn ich das Applet im Browser ausführe, gelingt die Verbindung nicht, ich erhalte diesen Fehler:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Verbindung zur Datenbank konnte nicht hergestellt werden. 3 Verbindungsversuche unternommen. Aufgegeben.

Haben Sie eine Idee, was das verursachen könnte? Soweit ich weiß, verbindet sich alles derzeit mit meinem lokalen Rechner. Was könnte das Problem sein, der MySQL-Server oder apache oder die Java-Anwendung, und wie könnte ich es lösen? Danke.

Ich habe versucht, das Applet zu signieren, und ich glaube, es signiert zu haben, aber es gibt mir trotzdem diesen Fehler. Danke.

0voto

emboss Punkte 37771

Standardmäßig erzwingt Java etwas Ähnliches wie die Same Origin Policy von Javascript: Nicht vertrauenswürdige Applets dürfen nur eine Netzwerkverbindung zum Server herstellen, von dem sie heruntergeladen wurden, aber der Zugriff auf verschiedene Domains ist verboten.

Um dies zu überwinden, ist das Signieren des Applets erforderlich, aber allein noch nicht ausreichend, um erweiterte Berechtigungen zu gewähren, Sie müssen auch explizit angeben, welche Berechtigungen Sie benötigen. Um zu testen, ob es funktioniert, versuchen Sie zunächst, AllPermission zu gewähren, Sie können dies anschließend noch feinabstimmen.

Ein einfacher Weg, AllPermission zu gewähren, besteht darin, das Applet mithilfe von JNLP bereitzustellen, fügen Sie hinzu

zu Ihrem JNLP-Bereitstellungsdeskriptor.

Stellen Sie als Nächstes sicher, dass alle von dem Applet referenzierten Jars mit dem gleichen Zertifikat signiert sind. Es reicht nicht aus, nur die Applet-Jar-Datei zu signieren.

Im "Java Control Panel" stellen Sie sicher, dass unter "Erweitert/Sicherheit" Sie

Benutzer zum Gewähren von Berechtigungen für signierte Inhalte zulassen

Das sollte das Problem lösen.


Eine einfache Überprüfung, um festzustellen, ob das Signieren wirklich erfolgreich war:

Öffnen Sie die Jar-Datei mit etwas wie WinZip, gehen Sie zum META-INF-Ordner und überprüfen Sie, ob neben MANIFEST.MF zwei zusätzliche Dateien existieren - eine endet in .SF, die andere wahrscheinlich in .RSA.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X