Mal wieder Applet und mysql

Status
Nicht offen für weitere Antworten.

d.ausstroit

Bekanntes Mitglied
Hai. Ich versuche zur Zeit eine DB-Verbindung zu einer Mysql-DB herzustellen. Die DB liegt bei 1&1. Hier mal der Code zum Verbinden:
Code:
             Class.forName("com.mysql.jdbc.Driver").newInstance();

             db = DriverManager.getConnection("jdbc:mysql://db421.1und1.de/DBNAME?user=USER&password=PWD");

Ich habe das Applet in meine HP eingebunden und versuche von dort auf die DB zuzugreifen. Ich bekomme aber einfach keine Verbindung zu der DB. Es kommt folgender Fehler:

SQLException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.UnknownHostException
MESSAGE: db421.1und1.de: db421.1und1.de

STACKTRACE:

java.net.UnknownHostException: db421.1und1.de: db421.1und1.de
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:137)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2565)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Ticker1.DBOpen(Ticker1.java:233)
at Ticker1.getTickerText(Ticker1.java:183)
at Ticker1.init(Ticker1.java:334)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **

Last packet sent to the server was 469 ms ago.
SQLState: 08S01
VendorError: 0

Geht das überhaupt mit dem Applet? Signiert habe ich es auch schon. Ich habe mal gelesen, wenn die Class-Datei des Applets auf dem gleichen Server liegt, wie die DB, dann geht es :?. Ist das so?

Ich hoffe, es kann mir jemand helfen.

Gruß

d.ausstroit
 
d.ausstroit hat gesagt.:
java.net.UnknownHostException: db421.1und1.de: db421.1und1.de

Geht das überhaupt mit dem Applet? Signiert habe ich es auch schon. Ich habe mal gelesen, wenn die Class-Datei des Applets auf dem gleichen Server liegt, wie die DB, dann geht es :?. Ist das so?

Die Exception gibt an, dass des Hosts unbekannt ist, weil die IP nicht aufgelöst/bestimmt werden konnte. Könnte auch daran liegen, weil kein Protokoll angegeben ist.
API-Doc hat gesagt.:
public class UnknownHostException
extends IOException


Thrown to indicate that the IP address of a host could not be determined.

Du MUSST das Applet signieren, weil ja eine Verbindung zu einem anderen Server (Datenbankserver) aufgenommen wird. Und dann geht das.
Ich kann diraber nicht sagen, wie du das Problem mit der Exception löst. Manche Provider erlauben aus Sicherheitgründen den Zugriff auf Datenbanken von außen nicht.
 
Hai. Danke dafür, dass Du Dich meiner angenommen hast.

Wie gesagt, signiert habe ich das Applet schon. Allerdings bekomme ich keine Verbindung. Ich muss doch aber den Host "db421.1und1.de" im Connector angeben. Oder nicht???
 
Vermutlich. Vielleicht fehlt aber nur ein Protokoll. Bspw. http://
Du hast zwar eins abgegeben, aber wie schon gesagt, ich bin mir da nicht sicher.
Oder 1und1 lässt keine Verbindung von außen zu.
 
Kann mir denn keiner einen Tip geben. Ich habe viele Foren durchsucht und überall steht, dass das mit einem signierten Applet möglich sein muss.

Was mache ich nur falsch :bahnhof:

Oder verstehe ich das mit dem Signieren falsch. Es müsste doch ausreichen, wenn ich das Applet auf meinem PC signiere und die JAR-Datei mit dem DB-Treiber dann zum Provider hochlade. Oder muss ich an meiner Policy-Datei was ändern. Wenn ja, was denn???

H I L F E
 
Du musst auch die Treiber-Jar signieren. Aber bei der oben beschriebenen Fehlermeldung hast du ein anderes Problem. Wenn es ein Rechteproblem gäbe, würde eine AccessControlException geworfen werden.

Aber du kannst es ruhig ausprobieren. In der FAQ findest du Beiträge zum Verpacken und Signieren von Jar-Archiven.
 
L-ectron-X hat gesagt.:
Du musst auch die Treiber-Jar signieren. Aber bei der oben beschriebenen Fehlermeldung hast du ein anderes Problem. Wenn es ein Rechteproblem gäbe, würde eine AccessControlException geworfen werden.

Aber du kannst es ruhig ausprobieren. In der FAQ findest du Beiträge zum Verpacken und Signieren von Jar-Archiven.

Wenn die WWW Seite zum Zugriff auf das Applet auf dem gleichen Host liegt, brauchst Du nichts zu signieren.

Das Problem ist aber, daß 1&1 keinen Zugriff auf die DB von außen erlaubt. Deshalb gehen DB-Applets bei 1&1 nicht. Ich habe gerade kurz herumgesucht, und das scheint mittlerweile Standard zu sein. Strato erlaubt es z.B. auch nicht, host-europe nur für Admin-Zwecke, usw. usf..

Vielleicht ist ein root-Server dochkeine schlechte Wahl auf Dauer...

Grüße,
Thomas Mack
 
Falsch! Signieren ist hier Pflicht! Das Applet soll auf einen anderen Server zugreifen, nämlich den Datenbank-Server. Also muss auch signiert werden. Mit dem Rast hast du sicher Recht.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben