# Mal wieder Applet und mysql



## d.ausstroit (13. Mrz 2007)

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:

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


----------



## L-ectron-X (13. Mrz 2007)

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.


----------



## d.ausstroit (13. Mrz 2007)

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


----------



## L-ectron-X (13. Mrz 2007)

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.


----------



## d.ausstroit (13. Mrz 2007)

Vielleicht klingt sich ja noch jemand in unsere Diskussion ein  :lol:


----------



## d.ausstroit (14. Mrz 2007)

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


----------



## L-ectron-X (14. Mrz 2007)

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.


----------



## Guest (31. Mrz 2007)

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


----------



## L-ectron-X (31. Mrz 2007)

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.


----------

