Avatar billede krukken Mester
21. oktober 2004 - 15:05 Der er 43 kommentarer og
2 løsninger

Mysql forbindelse fra Applet

Hej,

Jeg får følgende exception når min applet forsøget at forbinde til mysql:
java.sql.SQLException: Unable to connect to any hosts due to exception: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:3306 connect,resolve)

Serveren som hoster hjemmesiden og dermed apletten er på et mindre lokalnetværk og har ip: 192.168.1.101. I appplet koden har jeg angivet min globale IP-adresse. (altså den IP som routeren har)

I mysql har jeg angivet '%' ved den bruger som der logges ind som i aplettet. Jeg fik det til at virke lokalt igår, men har siddet og prøvet at få det til at virke "globalt" - men nu er der intet af det der virker:-(

Nogle som kan hjælpe mig?
Avatar billede arne_v Ekspert
21. oktober 2004 - 15:08 #1
Har du i din connection URL angivet den externe IP adresse ?

DriverManager.getConnection("jdbc:mysql://extern.ip.adresse/database", "brugernavn", "password")
Avatar billede krukken Mester
21. oktober 2004 - 15:10 #2
ja - altså den globale ip addresse ikke?
Avatar billede arne_v Ekspert
21. oktober 2004 - 15:12 #3
jep
Avatar billede arne_v Ekspert
21. oktober 2004 - 15:12 #4
Den forsøger jo at connecte til 127.0.0.1:3306 altså localhost på client
Avatar billede erikjacobsen Ekspert
21. oktober 2004 - 15:14 #5
Det du laver er lidt problematisk
1) Din Applet kan umiddelbart kun forbinde til en Mysql-server (eller hvad
  som helst andet), samme sted som Appletten ligger.
2) Du ser ud til at have en router. Der skal være åbnet for port 3306
3) At forbinde direkte til en MySql-server gør (formentlig) at du skal angive
  brugernavn og password i din Applet, og det kan enhver finde i din .class/.jar fil.
  Derved har man direkte adgang til dine data.
Avatar billede krukken Mester
21. oktober 2004 - 15:22 #6
3 - er jeg ligeglad med. Det er ikke noget som skal ligge offentligt. Det er kun et skole projekt, og der ligger ikke noget i databasen som ikke må blive slettet:-)
Avatar billede krukken Mester
21. oktober 2004 - 15:22 #7
2- jeg har åbnet port 3306 på routeren
Avatar billede krukken Mester
21. oktober 2004 - 15:24 #8
Jeg har åbnet til port 3306 med både TCP og UDP til den maskine hvor mysql ligger.
Avatar billede krukken Mester
21. oktober 2004 - 15:25 #9
arve_v > I java koden har jeg angivet den globale ip - jeg har nemlig også stusset over hvorfor der står localhost(127.0.0.1)
Avatar billede arne_v Ekspert
21. oktober 2004 - 15:26 #10
Er du sikker på at browseren kører nyeste version af appletten ?

(jeg har før haft problemer med "venlige" browsere som cachede)
Avatar billede krukken Mester
21. oktober 2004 - 15:33 #11
Nu har jeg prøvet at slette alle filer i de internet temp filer - og jeg får stadigvæk samme exception. (også med 127.0.0.1)
Avatar billede krukken Mester
21. oktober 2004 - 15:33 #12
og jeg har lige prøvet at genstarte mysql - men lige meget hjalp det.
Avatar billede arne_v Ekspert
21. oktober 2004 - 15:35 #13
Har du også prøvet at gå helt ud af browser (ingen åbne vinduer) og ind igen
Avatar billede krukken Mester
21. oktober 2004 - 15:37 #14
ja - det gør jeg hvad gang jeg har lavet ændringer. Bare for en sikkerhedsskyld
Avatar billede krukken Mester
21. oktober 2004 - 15:39 #15
Og dette er formatet man bruger ikke?
DriverManager.getConnection("jdbc:mysql://extern.ip.adresse:port/database", "brugernavn", "password")
Avatar billede arne_v Ekspert
21. oktober 2004 - 15:43 #16
Ja med mindre det er en meget gammel MySQL JDBC driver
Avatar billede krukken Mester
21. oktober 2004 - 15:43 #17
Jeg forstår bare heller ikke at hvor 127.0.0.1:3306(i den exception) kommer fra. Jeg har hverken angivet 127.0.0.1 eller localhost nogen steder.
Avatar billede arne_v Ekspert
21. oktober 2004 - 15:43 #18
Noget helt andet - har du et manifest i din jar med Class-Path til MySQL JDBC driver jar ?
Avatar billede krukken Mester
21. oktober 2004 - 15:44 #19
Jeg tror ikke at den er gammel - jeg hentede den for et par måneder siden.
Avatar billede krukken Mester
21. oktober 2004 - 15:57 #20
% betyder det både localhost og ekstern ip?
Avatar billede krukken Mester
21. oktober 2004 - 15:57 #21
altså % i databasen?
Avatar billede arne_v Ekspert
21. oktober 2004 - 16:00 #22
Ja.

Men problemet er ikke i server enden.

Problemet er i client enden. Appletten tror at den skal connecte til localhost.

Det er ikke noget så banalt som at du åbner flere connections og en ikke er rettet ?
Avatar billede krukken Mester
21. oktober 2004 - 16:02 #23
He he - nej. Jeg bruger to applets ligenu. De opretter begge et objekt at en database-klasse hvor alle oplysningen om login i databasen er angivet. Så det bliver kun angivet et sted. Desværre.
Avatar billede krukken Mester
21. oktober 2004 - 16:14 #24
arne_v > gider du ikke at prøve at logge ind
email: arve_v@arne_v.dk
password arne_v

http://www.weather.dyndns.dk
Avatar billede krukken Mester
21. oktober 2004 - 16:16 #25
Hvilke exceptions får du?
Avatar billede arne_v Ekspert
21. oktober 2004 - 16:30 #26
Hvilke af de 4 billeder skal jeg klikke på ?
Avatar billede arne_v Ekspert
21. oktober 2004 - 16:31 #27
Første billede (data):

load: class Compass.class not found.

java.lang.ClassNotFoundException: Compass.class

    at sun.applet.AppletClassLoader.findClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at sun.applet.AppletClassLoader.loadClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at sun.applet.AppletClassLoader.loadCode(Unknown Source)

    at sun.applet.AppletPanel.createApplet(Unknown Source)

    at sun.plugin.AppletViewer.createApplet(Unknown Source)

    at sun.applet.AppletPanel.runLoader(Unknown Source)

    at sun.applet.AppletPanel.run(Unknown Source)

    at java.lang.Thread.run(Unknown Source)

Caused by: java.io.IOException: open HTTP connection failed.

    at sun.applet.AppletClassLoader.getBytes(Unknown Source)

    at sun.applet.AppletClassLoader.access$100(Unknown Source)

    at sun.applet.AppletClassLoader$1.run(Unknown Source)

    at java.security.AccessController.doPrivileged(Native Method)

    ... 10 more

load: class Actuel.class not found.

java.lang.ClassNotFoundException: Actuel.class

    at sun.applet.AppletClassLoader.findClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at sun.applet.AppletClassLoader.loadClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at sun.applet.AppletClassLoader.loadCode(Unknown Source)

    at sun.applet.AppletPanel.createApplet(Unknown Source)

    at sun.plugin.AppletViewer.createApplet(Unknown Source)

    at sun.applet.AppletPanel.runLoader(Unknown Source)

    at sun.applet.AppletPanel.run(Unknown Source)

    at java.lang.Thread.run(Unknown Source)

Caused by: java.io.IOException: open HTTP connection failed.

    at sun.applet.AppletClassLoader.getBytes(Unknown Source)

    at sun.applet.AppletClassLoader.access$100(Unknown Source)

    at sun.applet.AppletClassLoader$1.run(Unknown Source)

    at java.security.AccessController.doPrivileged(Native Method)

    ... 10 more
Avatar billede arne_v Ekspert
21. oktober 2004 - 16:32 #28
Helt andre fejl end dig
Avatar billede krukken Mester
21. oktober 2004 - 16:33 #29
/Weather/members/Data/
Avatar billede krukken Mester
21. oktober 2004 - 16:35 #30
Du skal ikke tage dig at fejl andre steder på siden:-)
Avatar billede krukken Mester
21. oktober 2004 - 16:35 #31
Det er kun de applet fejl jeg er intresseret i;-)
Avatar billede arne_v Ekspert
21. oktober 2004 - 18:07 #32
Det ligner nærmest et problem med at hente class filerne
Avatar billede krukken Mester
21. oktober 2004 - 18:11 #33
Det lyder da underligt. jeg har åbent for port 80, så du burde kunne hente dem.
Avatar billede _carsten Nybegynder
21. oktober 2004 - 21:42 #34
Du har 3 skråstreger her

("jdbc:mysql:///212.10.228.249:3306............
            ^^^
Avatar billede _carsten Nybegynder
21. oktober 2004 - 21:43 #35
Nå, de blev ikke plantet som forventet
Avatar billede krukken Mester
21. oktober 2004 - 21:49 #36
Hmmm - det hjalp da lidt. Gider du ikke at prøve at logge ind igen så. Og så hvilke exceptions du nu får?
Avatar billede _carsten Nybegynder
21. oktober 2004 - 21:54 #37
NullPointer i Compass

java.lang.NullPointerException
    at Compass.init(Compass.java:42)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
    at Compass.init(Compass.java:42)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Avatar billede krukken Mester
21. oktober 2004 - 21:57 #38
Prøv lige igen
Avatar billede krukken Mester
21. oktober 2004 - 22:00 #39
Nu virker det i hvert fald hos mig:-)
Avatar billede _carsten Nybegynder
21. oktober 2004 - 22:02 #40
Prøvede lige et par gange, og her virker den også!
Avatar billede krukken Mester
21. oktober 2004 - 22:04 #41
He he -) Synes du ikke at vindretningen skifter ret meget:-)
Avatar billede _carsten Nybegynder
21. oktober 2004 - 22:06 #42
Det virker ihvertfald ikke troværdigt!  :-)
Avatar billede krukken Mester
21. oktober 2004 - 22:08 #43
he he - det er også bare et tilfældigt tal jeg ganger med 360:-)

Men kan du ikke ligge et svar - så får du halvdelen af pointene.

Arne_v > hvis du også ligger et svar?
Avatar billede _carsten Nybegynder
21. oktober 2004 - 22:09 #44
OK
Avatar billede arne_v Ekspert
22. oktober 2004 - 07:46 #45
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester