ich habe ein Applet entwickelt, der Daten auf meine lokale Mysql-DB (xampp) schreibt und liest.
D.h Ein Applet-textfeldinhalt wird in die DB geschrieben und durch einen anderen Button wieder auf ein Ausgabetextfeld rausgeschrieben. Dazu waren notwendig.
1. Applet
2. MySQL Treiber als Externes Lib einbinden
Fazit: Es funktioniert einwandfrei in Eclipse. Wenn ich dieses Projekt als jar exportiere und auf dem Webserver laufen lassen, dann funktionieren alle Funktion des Applet bis auf diese Mysql-punkte d.h.
Applet auf dem Webserver läuft grundsätzlich nur Verbindung der MySQL-DB nicht. Leider gibts aus keine Fehlermeldung, sondern nur der Button ist grau und nichts passiert. Das Applet selber funktioniert aber weiterhin. Hat einer eine Idee.
Hast du hast jar signiert?
Das Applet baut eine tcp Verbindung zum Server auf,
dies ist nur siegnierten Applets erlaubt.
Weiterhin überprüfe bitte, ob der das Applet, welches
ja außerhalb des Servers beim Client ausgeführt wird,
überhaupt die Berechtigung hat, auf den Server zuzugreifen
(DB Berechtigungen des users, listen ,...).
Das Thema: Applets signieren wurde hier schon öfter behandelt,
benutze einfach die Suche.
Hi,
jep. Signiert ist es d.h.
Hab anhand der Tutorials das Applet signiert und wenn das Applet auf dem lokalen Webserver starte, dann erscheint auch dieses Trauenabfrage-Popup, dass man zustimmen muss. Alle Applet funktionen funktionieren auch nur die Funktion mit dem MySql-zugriff. Hier noch die DB-Code. Vielleicht sieht einer von euch den Fehler.
Danke schon mal im voraus für Hilfe.
Wie gesagt, im ecplise funktoniert das einwandfrei
Java:
...publicvoidDBstart(StringErg){String driver ="org.gjt.mm.mysql.Driver";String url ="jdbc:mysql://localhost/TestDB";String user ="Testuser";String password ="Kennwort";try{// Treiber ladenClass.forName(driver);}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();// Daten schreibenString SQL;
SQL ="INSERT INTO tab_test(Name) VALUES('Testeintrag');";
statement.executeUpdate(SQL);....
Davon abgesehen eine fragwürdige Konstruktion, dass ein Applet direkt eine Verbindung mit der Datenbank aufbaut. Sicherlich eine erhebliche Sicherheitslücke.
Hi
leider immer noch keine Lösung. Hab die entsprechende Zeile angepasst.
jar cfmv mysql-connector-java-5.1.9-bin.jar manifest.mf *.*
Signierung hat gut geklappt und wenn man auf dem Webserver den Applet aufruft, macht auch alles so was es soll, aber eben nicht der MySQL-zugriff. Ist echt komisch. Im eclipse funktioniert einwandfrei.
Ich frage mich, ob ich der einzige bin, der aus Applet eine MySQL-DB ansteuern will. Diese Funktion müssen doch auch andere Entwickler haben, wenn ein Applet nach seiner Arbeit irgendwelche Daten sichern und wenn man nicht immer ein txt-Datei erzeugen möchte.
Keine Ahnung, ich guck mal weiter.
Aber erstmal vielen herzlichen Dank L-ectron-X, hast mir schon an vielen Stellen über die ersten Problem mit Java gehofen.
p.s.: ach ja, wie kann man eigentlich deine "Dank"-Hit erhöhen?
Ich würde das kapseln.. vom Applet z.B. ein Post-Request auslösen (oder sonstwie per Socket eine Verbindung zum Server aufbauen), auf dem Server mit einem Servlet dieses auswerten, die Daten auslesen und in der Datenbank speichern. Ist auch sicherer.
Das Problem scheint mir auch drarin zu liegen, das du keine Fehlermeldung siehst. Da stochert man dann im Nebel.
Hast du auch wirklich in der Java Konsole gekuckt?
vielen Dank nochmal an alle, die so hilfsbereit sind. Finde ich in diesem Forum echt super. Ich werde mich mal mit dem Vorschlag von JanHH beschäftigen. Hab zwar keine Ahnung, aber ich mach mich mal schlau.
ich habe jetzt nicht den kompletten Thread gelesen, aber folgendes kann nicht funktionieren:
String url = "jdbc:mysql://localhost/TestDB";
???
Ist die DB lokal beim Client installiert, oder auf dem WebServer?
Dann kommst mit localhost nicht weit.
Gleiches besagte aber eigentlich auch meine erste Antwort.
Dann wurde das jar nicht gefunden, in dem sich der MySQL Treiber befindet.
Ehrlich gesagt weiss ich leider nicht wie das bei einem Applet funktioniert.
zu eliot:
Es liegt erstmal bei mir Lokal und läuft auf meinem Webserver das ich mit Xampp darstelle.
zu homer65:
Das Problem ist die Anbindung des Treibers. Unter Ecplise ist es als "Referenziertes Bib" eingebunden und funktioniert es soweit. Was ich in anderen Foren gelesen habe ist, dass man den Treiber in den Klassenpfad importieren muss. Das muss ich mir noch genauer anschauen.
D.h. die Ursache ist wohl, dass beim Export (erstellen der Jar-Datei) der MySQL-Treiber der in Ecplise als Ref-Bibliothek eingebunden ist, nicht mit exportiert wurde.
Vielleicht hat eine schon Erfahrungen mit Einbinden des MySQL-Treibers und dem "integrierten" Export des Treibers (so nenne ich das mal).
1. Wie bindet man in ecplise eine Jar-Datei (MySQL-Treiber Jar) in den Klasspfad sauber einbinden kann und zwar nicht als Ref-Bibliothek (Ich meine nicht den Weg "über Projekte-Eigenschaften-Bibliothek-Externe Jar Hinzufügen").
2. Wie binde ich Treiber beim Erstellen der Jar-Datei ein.