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

GWT et Vaadin Java Discussion :

GWT connexion Mysql


Sujet :

GWT et Vaadin Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Par défaut GWT connexion Mysql
    Salut a tous,
    je suis debutant en GWT et je me suis lancer ds une connexion a ma bdd (mysql).
    J'utilise GWT 1.7 et j'ai ajouté GXT pr tous ce qui sera interface graphique.
    J'ai installé le plugin d'eclipse pr GWT.
    Quand je lance mon projet ds le navigateur gwt, une erreur en console apparrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Mysql Connection Error: 
    com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 
     
    ** BEGIN NESTED EXCEPTION ** 
     
    java.security.AccessControlException
    MESSAGE: access denied (java.net.SocketPermission localhost resolve)
     
    STACKTRACE:
     
    java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)
    	at java.security.AccessControlContext.checkPermission(Unknown Source)
    ...
    J'ai cherché des solutions a ce probleme frequent avec GWT;
    Une sollution a priori convenable est de changer ds le fichier catalina.policy et d'ajouter :
    grant codeBase "file:${catalina.home}/webapps/-" {
    permission java.net.SocketPermission "localhost:3306", "connect";
    };
    Je ne comprend pas car je n'utilise pas Tomcat a proprement parlé vu que je ne crée pas de .war de mon projet , je le lance que par mon Eclipse avec le navigateur GWT.

    Voila ma fonction java de connexion :
    public void greetServer(String input) {

    Connection conn = null;
    String url = "jdbc:mysql://localhost:3306/";
    String db = "toto";
    String driver = "com.mysql.jdbc.Driver";
    String user = "tata";
    String pass = "tata";

    try {
    Class.forName(driver).newInstance();
    } catch (InstantiationException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    try {

    conn = DriverManager.getConnection(url+db, user, pass);
    } catch (SQLException e) {
    System.err.println("Mysql Connection Error: ");
    e.printStackTrace();
    }
    Avez vous une solution a mon probleme de connexion a une bdd en GWT?

  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Je ne comprend pas trop le rapport avec GWT ?

    Soit le code de connexion à ta base de données MySQL est côté client et là, tu peux toujours courir ...

    Soit il est coté serveur (ce qu'il faut faire) et GWT n'a plus rien avoir dedans, c'est du Java classique.

    Après, il te faut vérifier
    • que le driver jdbc de mysql est bien dans ton classpath
    • que les paramètres de connexion à ta base sont bons
    • que ta base est bien démarrée sur ta machine (utilise MySQL Query Browser pour tester l'accès avec tes paramètres)


    Pour info, GWT en hosted mode utilise un tomcat ou un jetty embarqué suivant les versions de GWT.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Par défaut
    Merci pour le detail concernant le point que GWT utilise tomcat embarqué.

    Pour ma connexion je viens de résoudre mon problème.L'erreur était dans la création du RPC correspondant et non dans les points que tu as cités.
    merci


    A présent que la connexion a la base de donnée est effectué ==>> développement des interfaces !

  4. #4
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut GWT MySQL
    Bonjour,

    moi je dois faire la même chose, une connexion à une base mysql avec GWT héberger en local .

    J'ai mis mon code dans la partie "serveur" du projet, du code java pure. Ma connexion ce fait bien car je récupère mes valeurs en console quand je lance le projet en "java application". Mais je ne sais pas après comment afficher les données.
    Avez vous des infos pour m'aider? le mieux serait un tutorial sur la connexion à une bd en GWT.

    Voici mon code

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
     
    class ConnBD{
    	public static void main(String[] args){
     
    //Nom de mon pilote
     String pilote = "com.mysql.jdbc.Driver";
     
     try{
     //Chargement de mon pilote
     Class.forName(pilote);
     
     //Connexion à ma base mysql avec mon login et mot de passe
     Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/test","root","");
     
     //Création de mon statement qui va me permettre d'executer mes requetes
     Statement instruction = connexion.createStatement();
     
     ResultSet resultat = instruction.executeQuery("SELECT * FROM client");
     while(resultat.next()){
     
     System.out.println("---------------------------");
     System.out.println("nom: "+resultat.getString("nom"));
     System.out.println("prenom: "+resultat.getString("prenom"));
     
     }
     }
     catch (Exception e){
     
     System.out.println("echec pilote : "+e);
     }
     
     }
     }

    Merci d'avance

    Cordialement

  5. #5
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Citation Envoyé par lykan Voir le message
    Mais je ne sais pas après comment afficher les données.
    Une webapp, deux parties : cliente et serveur.
    Ta partie serveur se connecte à ta base de données (ça semble marcher dans ton cas)
    Ta partie cliente gwt doit afficher les données.

    Il te faut donc envoyer les données du serveur au client.
    Plusieurs moyens à ta disposition :
    Mode RPC de GWT (Les objets qui transitent doivent être sérializable en javascript par gwt)
    Mode classique par envoi d'XML ou de JSON

  6. #6
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    merci de ta réponse et désolé pour la mienne un peu tardive.

    Je suis débutant enfaite, le RPC ca me parle mais j'ai rien de concret, et je ne trouve pas de tutoriaux pour faire une connexion à une base.

    Pour le XML et JSON ça ne me parle pas du tout. As tu des exemple concret à me donner (pour les 2 façons)?

    Cordialement

  7. #7
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    1) tu fais un exemple RPC et tu testes qu'il fonctionne
    http://code.google.com/intl/fr/webto...unication.html

    2) En dehors de cela, tu écris une classe Java qui se connecte à ta base de données (inclure le jar de mysql) et tu testes qu'elle fonctionne soit avec junit, soit avec un main(String[] args).
    Dans cette classe, tu écris des méthodes qui te permettent de récupérer des données et donc de remplir des beans (des objets Java)

    3) Tu fais en sorte que ces beans soit dans un package GWT client (pour qu'il puisse les compiler en JS)

    4) Tu reprends l'exemple RPC fait en 1) une fois qu'il fonctionne et dans la servlet d'implémentation de ton service, tu te sert de la classe écrite en 2) pour aller chercher tes données en base de données.
    Normallement, si tu as tout fait comme il faut, tu recevras côté client, des objets javascript qui réprésente tes données (les fameux bean java vu en 3))

  8. #8
    Membre expérimenté Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Par défaut
    Un fois les appel RPC de gwt compris c'est un methode assez simple à utiliser et qui marche bien.

    N'oublie pas une chose, c'est appel sont essentillement asynchrone et si tu à besoin du résultat pour tes traitements, il faut bien veiller à ce qu'il soit disponible au moment du traitement.
    Par exemple, remplir une table avec les donnees d'un BDD... si tu attends pas le traitement de l'appel RPC, tu n'aura rien a afficher... voir pire (qui parle de nullPointerException? )

    Bonne courage!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [GWT] Problème JEE ? Et connexion MySql
    Par glub0x dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 01/07/2011, 18h21
  2. [GWT] Connexion MySQL + transport client/server
    Par Jiraf dans le forum GWT et Vaadin
    Réponses: 16
    Dernier message: 03/03/2011, 14h31
  3. Connexion mysql
    Par olive.m dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 18/06/2004, 17h44
  4. [Connexion MySQL] Can't connect to MySQL server
    Par mat_dum dans le forum Outils
    Réponses: 12
    Dernier message: 17/07/2003, 07h49
  5. [Kylix] [cgi] pb déploiement appli avec connexion MySQL [rés
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 06/08/2002, 20h09

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