# Problem mit JDBC und Applet



## Schnitter (1. Jun 2008)

hi.

Ich lasse grad ein Applet auf meinem (ohost) space laufen. 
Er kann aber nicht connecten:


```
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2103)
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:185)
	at org.AEOcean.start(AEOcean.java:113)
	at sun.applet.AppletPanel.run(AppletPanel.java:465)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:20 connect,resolve)
	at com.mysql.jdbc.StandardSocketFactory.unwrapExceptionToProperClassAndThrowIt(StandardSocketFactory.java:404)
	at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:265)
	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2026)
	... 14 more
```
Die Zugangsdaten stimmen(wie man ja an der Fehlermeldung merkt...).

Jetzt: Gibts da irgendein server-technisches Problem?
Oder ist jdbc+applet überhaupt nicht müglich?
(Auf meinem localhost rennts nämlich...)

Mfg


----------



## L-ectron-X (2. Jun 2008)

Mal abgesehen davon, dass es wahrscheinlich keine so gute Idee ist, die Benutzerdaten ins Applet hart zu codieren, muss das Applet vermutlich noch signiert werden. Die AccessControlException weißt darauf hin.
In der FAQ findest du entsprechende Hilfe zum Signieren.


----------



## tuxedo (3. Jun 2008)

>> Caused by: java.net.SocketException: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:20 connect,resolve) 

Sicher dass die Adresse 127.0.0.1 stimmt? Denk dran: Ein Applet läuft nicht auf dem Server, sondern auf dem Rechner in dessen Browserfenster es angezeigt wird (also beim Client). 

Aber signieren wirst du's vermutlich so oder so müssen.

- Alex


----------



## FArt (6. Jun 2008)

Abgesehen davon, dass es keine gute Idee ist von einem Applet aus auf die DB zuzugreifen, müsste es technisch funktionieren, wenn keine Firewall etwas dagegen hat.

Wenn ich recht überlege, dann muss man das Applet auch nicht signieren, sofern lediglich Verbindungen zu dem Server aufgebaute werden, von dem das Applet geladen wurde.


----------

