IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

Probleme connexion BDD mysql avec applet


Sujet :

Applets Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut Probleme connexion BDD mysql avec applet
    Bonjour !

    Voilà j'ai réalisé une applet qui utilise une base de données mysql en parallèle.
    En local ça marche bien la connexion se passe correctement.
    Mais à distance ça ne marche plus -> la connexion ne se fait pas correctement.
    J'arrive bien à accéder à mon applet mais c'est tout, dès que je veux me connecter avec un login et un mot de passe à ma base j'ai une erreur de type ClassNotFound ...
    Savez-vous d'ou ça peut venir ?
    Merci

  2. #2
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Je suppose que la ClassNotFound indique le nom de la classe du Driver JDBC.
    Il faut que le jar qui le contient soit dans le même dossier que le jar de ton applet et que tu utilises la balise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <APPLET CODE="MonApplet.class" ARCHIVE="monJarApplet, monJarJDBC" WIDTH=anInt HEIGHT=anInt>
    </APPLET>

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    Oki je fais mes tests et je vous redis ...
    Merci.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    Bon bah sans succès.
    Le driver n'a pas besoin d'être signé poutant ?
    Faut-il que j'inclus le driver comme librairie dans mon projet ?
    Merci

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    J'ai essayé d'inclure les lib dont j'ai besoin dans mon projet et de faire mon jar. Mais c pareil.J'arrive pas à me connecter à ma base de données depuis l'applet, en local ça marche bien et j'ai virer toute les dépendances qu'il pourrait aller chercher dans netbeans.
    Mon url de connexion est bon j'ai vérifier.
    J'utilise un compte qui a tous les privilèges dans mysql.JE vois pas ce qui peux bloquer.

    j'ai essayé de mettre dans mon .html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ARCHIVE="monJarApplet.jar, monJarJDBC.jar"
    Mais ça change rien.

    Des idées ? :p

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    Alors j'ai ptete une piste ...
    ça viendrait ptete du fait que dans ma chaine de connexion j'ai localhost et l'applet se charge chez le client.
    Est qu'au lieu du nom de machine je peux mettre une adresse "dyndns" ?
    Car le serveur sur lequel est l'appli est un ip dynamique...
    Vous en pensez quoi ?
    Merci.

  7. #7
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Oui ca devrait marcher

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    Alors purée décidement ça veut vraiment pas ...
    Je pense que la solution est bien à voir su ce plan là ... mais je dois avoir un problème ailleur ...
    En fait j'ai fais pas mal de test et la seule chaine de connection qui marche est celle avec le localhost.
    Si je passe avec une @ ip (meme l'ip locale ex : 192.168.0.5 ) ou avec un ip style mon domain.dyndns.org alors ça passe plus.
    J'ai essayé de changer l'écoute dans le fichier httpd.conf mais apache ne veut plus se lancer.
    J'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Listen 192.168.0.5:80 -> il ne veut pas se lancer.
    Listen localhost:80 ou 127.0.0.1:80 -> passe
    Est-ce qu'il y aurait quelque chose que j'aurai oublier dans les param de apache ou de mysql ?
    Merci.

  9. #9
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Cela ne vient pas de ton fichier Apache.
    C'est ton applet qui ne se connecte pas à ta base de données cela n'a rien a voir avec Apache.

    Peux-tu poster la partie de code de l'Applet qui fait la connection vers la base?

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    Voilà ma méthode pour me connecter à la base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    public static Connection ouvrirConnexion()
        {
            boolean ouvertureOK = true;
     
                try
                {
                    // Charge le driver JDBC
                    String driver = "com.mysql.jdbc.Driver";
                    Class.forName(driver);
                    Connection connection = null;
                    //String url = "jdbc:mysql://localhost/jorky";                           
    		//System.out.println("plop");
    		connection =  DriverManager.getConnection("jdbc:mysql://localhost/jorky", "root", "@yoann9626");       
    		//System.out.println("plop2");
                    return connection;
                    //return  DriverManager.getConnection(url, username, password);                     
                }          
                catch (ClassNotFoundException e)
                {
                    System.err.println("Ne trouve pas la base !!");
                }
                catch (SQLException e)
                {
                    System.err.println("N'arrive pas a se connecter a la base !!");
                }
            return null;
        }
    J'utilise le driver mysql-connector-java-3.0.17-ga-bin.jar pour mysql.

  11. #11
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    C'est le localhost de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		connection =  DriverManager.getConnection("jdbc:mysql://localhost/jorky", "root", "@yoann9626");
    qu'il faut remplacer par ton adresse de serveur.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    J'ai déjà essayé de le changer ça change rien ...
    Meme en mettant l'@ IP qui correspond au localhost en question ça marche pas (ce qui est très étonnant vu que normalement ça correspond à la meme adresse).
    Donc je suis toujours au meme point dsl ... :p

  13. #13
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Ce qui me surprend c'est déjà que tu ne précises pas le port d'écoute de MySQL. Une adresse de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jdbc:mysql://localhost:3306/jorky
    - vérifie que tu n'as pas un firewall sur ta machine hébergeant la base qui bloquerait ce port.
    - ce n'est pas une bonne idée de ne pas afficher le message d'erreur, il pourrait t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    catch (ClassNotFoundException e)
                {
                    System.err.println("Ne trouve pas la base !!");
                }
                catch (SQLException e)
                {
                    System.err.println("N'arrive pas a se connecter a la base !!");
                }
    Si tu n'utilises pas de logger tu peux faire un
    La ClassNotFoundException va arriver si le driver n'est pas trouvé, pas si la base n'est pas trouvée...

  14. #14
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    Est ce que le fait de placer au meme endroit que le .html et le .jar de l'applet, le .jar du driver suffit à ce que le programme marche si se trouve dans le .html le code ci-dessous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    <APPLET CODE="MonApplet.class" ARCHIVE="monJarApplet.jar, monJarJDBC.jar" WIDTH=800 HEIGHT=600>
    </APPLET>
    Ou faut il quand meme rajouter le .jar du driver dans le classpath ?
    Apparement il arrive pas à faire le lien avec mon driver quand je veux y acceder depuis une autre machine.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    J'ai varié 2 choses dans le fichier my.ini de mysql
    Ceci sont les messages que j'obtient à partir d'une machine du réseau local autre que celle qui possede l'appli.

    Voici le message que j'obtient lorsque je fourni la chaine de connexion suivante :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    connection =  DriverManager.getConnection("jdbc:mysql://10.205.0.17:3306/mabase", "login", "mdp");
    Avec la ligne bind-address=10.205.0.17

    Messsage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    java.sql.SQLException: Data source rejected establishment of connection,  message from server: "Le hôte 'POSTE11' n'est pas authorisé à se connecter à ce serveur MySQL"
            at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:650)
            at com.mysql.jdbc.Connection.createNewIO(Connection.java:1808)
            at com.mysql.jdbc.Connection.<init>(Connection.java:452)
            at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
    Avec la ligne bind-address=127.0.0.1
    Message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    java.sql.SQLException: Unable to connect to any hosts due to exception: java.net.SocketException: java.net.ConnectException: Connection refused: connect
     
    ** BEGIN NESTED EXCEPTION ** 
     
    java.net.SocketException
    MESSAGE: java.net.ConnectException: Connection refused: connect
     
    STACKTRACE:
     
    java.net.SocketException: java.net.ConnectException: Connection refused: connect
            at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:143)
            at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:225)
            at com.mysql.jdbc.Connection.createNewIO(Connection.java:1805)
            at com.mysql.jdbc.Connection.<init>(Connection.java:452)
            at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
    Je suis en local donc normalement les ports n'ont pas d'impact.
    Quand ça marchera en local je pense que se sera bon de l'extérieur.

  16. #16
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    La bonne configuration semble celle qui donne le premier message.
    D'après le premier message, l'applet se connecte bien sur la base, mais celle-çi refuse la connexion. Cela vient sans doute de ta configuration de MySQL.
    Dans ce cas il faut voir dans le forum dédié :
    http://www.developpez.net/forums/forumdisplay.php?f=44

  17. #17
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    Ca y est ça passe bien par le réseau ...
    Apparement c'est mon fichier my.ini qui merdait.
    J'ai mis l'adresse de mon server dans la ligne bind-adress= ... et ça passe.
    Je fais mon test depuis l'ext ce soir (car là c en local), et si c bon je me la discussion en résolu
    Merci pour les conseils.

  18. #18
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Points : 38
    Points
    38
    Par défaut
    Bon j'ai toujours un soucis ...
    Dans un réseau local ça passe bien mais apparement j'ai une erreur avec le fichier policy.all ...
    Et j'ai une erreur de socketPermissionDenied ...
    Je suis vraiment à cours d'idée ...

  19. #19
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Signature de l'applet ? (voir le post-it en haut)
    Si la base est hébergé sur un serveur différent de celui où l'applet a été chargée, c'est obligatoire. Cela expliquerait le permissionDenied de la socket.

  20. #20
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Je ne sais pas si c'est ça, mais il faut configurer MySql (faisable via l'interface graphique dont j'ai oublié le nom), pour qu'il accepte les connexions venant de l'extérieur.
    Il faut lui donner les ips des machines qui ont besoin d'accéder à la base.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. connexion MySql avec Applet
    Par kimausoleil dans le forum Applets
    Réponses: 1
    Dernier message: 19/01/2010, 10h49
  2. Problème connexion BDD MySql avec jdbc
    Par libery dans le forum JDBC
    Réponses: 6
    Dernier message: 27/05/2009, 12h25
  3. [dBExpress] Connexion BDD MySQL v5.0.22 avec Delphi 6 ?
    Par pepito62 dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/11/2008, 16h27
  4. Connexion MYSQL avec Applet en réseau
    Par CherrabAhmed dans le forum JDBC
    Réponses: 2
    Dernier message: 18/06/2007, 16h44
  5. probleme connexion server mysql avec mot de passe
    Par jsdar dans le forum Débuter
    Réponses: 1
    Dernier message: 25/02/2007, 19h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo