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

Servlets/JSP Java Discussion :

[Eclipse / Tomcat7] Problème de connexion MySQL dans la servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Par défaut [Eclipse / Tomcat7] Problème de connexion MySQL dans la servlet
    Bonjour,
    j'avais rencontré sur du Java EE un problème de connexion à une base MySQL à cause de la tendance à se connecter en IPv6 du jre7. J'ai résolu avec la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     System.setProperty("java.net.preferIPv4Stack" , "true");
    avant de créer la connexion.
    Mais aujourd'hui en passant sur un projet java EE avec Tomcat 7, cela ne marche plus : la connexion à la base via une servlet gérée dans Eclipse. J'ai l'impression que cela vient de Tomcat qui se connecte en IPv6 mais je n'en suis pas sûr.
    Est-ce que quelqu'un sait comment résoudre ce problème ?
    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Par défaut
    S'il faut plus de précisions pour m'aider, demandez-moi.

  3. #3
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Bonjour,

    oui, je pense qu'il faut plus de précisions. Dans tous les cas, si tu n'arrives pas à te connecter sur ta base MySQL, tu auras forcément un message d'erreur ou d'avertissement soit sur ton code, soit sur les fichiers de logs de tomcat.

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  4. #4
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Par défaut
    En fait, j'aurais dû écrire les détails tout de suite, sans ça c'est clair qu'il n'y rien à comprendre.
    Mon appli JEE fonctionne avec Eclipse Juno, Java 7, TOmcat 7 et MySQL 5.5. J'ai une servlet, une vue JSP et des modèles. Mais j'ai un problème de connexion soit directement depuis la servlet soit en appelant un objet de connexion (instanciation de la classe DBConnection).

    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
    public class servphilo extends HttpServlet {
        ResultSet listeEtat;
        DBConnection conn = null;
     
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            try {
            conn=new DBConnection();
                System.out.println("création objet connexion OK");
            } catch(Exception e) {
                e.printStackTrace();
            }       
            try {
                conn.getDBConnection();
            } catch (Exception e) {
                e.printStackTrace();
            }
            this.getServletContext().getRequestDispatcher( "/WEB-INF/view.jsp" ).forward( request, response );      
        }
    }
    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
    public class DBConnection {
        Connection conn = null;
        public DBConnection () {
            //System.out.println("objet DBconnection OK");
        }
     
        public Connection getDBConnection() throws Exception{
            Class.forName("com.mysql.jdbc.Driver").newInstance();
     
            String sUserName="aaa";
            String sPwd="bbb";
            System.setProperty("java.net.preferIPv4Stack" , "true");
            conn = DriverManager.getConnection("jdbc:mysql://localhost/base",sUserName,sPwd);
            System.out.println("objet DBconnection OK");
            return conn;
        }
    }
    Depuis le navigateur l'appel de http://localhost/base renvoie bien la JSP demandée mais la console Eclipse renvoie ce message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    La ligne System.setProperty("java.net.preferIPv4Stack" , "true"); que j'avais ajoutée vient d'un ancien problème de connexion à forcer en IPv4 depuis une classe Java avec main() et qui fonctionnait bien, mais là ça plante.

    C'est le même message qu'en Java pur mais il semble qu'ici ce soit Tomcat qui se connecte en IPv6. Est-ce vraiment ça ? Comment résoudre précisément ce problème ?
    Merci

  5. #5
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    hmm, essaies de mettre directement l'adresse ip de la base de donnée et aussi le numéro de port de façon explicite.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jdbc:mysql://12.34.56.789:3306/ma_base
    cela évitera le fait de devoir se baser sur un serveur dns.
    Autre chose aussi, fait un ping de ton serveur et vérifie que le port est accessible à partir de la machine où tu lances ton application.
    Déjà, si tu n'arrives pas à faire le ping et que le port n'est pas en écoute, faudrait corriger cela alors.

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  6. #6
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Par défaut
    En mettant 127.0.0.1 ou 127.0.0.1:3306 (je suis en local sur mon ordi) ça ne marche pas mieux.
    Le serveur Tomcat 7 est lancé depuis Eclipse mais quand je fais localhost:8080 dans mon navigateur, ça ne fait rien. Est-ce quecela veut dire qu'iln'est pas vraiment lancé ?
    Quand je fais un netstat -a le port 3306 apparaît en écoute (à condition d'avoir lancé MySQL via EasyPHP mais san Apache ! mais c'est logique), et le ping 127.0.0.1 fonctionne.

    Je n'y comprends rien, et je m'étonne qu'il n'y ait pas d'autres contributions, je ne dois pas être le seul à avoir ce problème quand même ?

Discussions similaires

  1. Eclipse-hibernate-Problème de connexion
    Par matech dans le forum Hibernate
    Réponses: 9
    Dernier message: 14/08/2007, 11h36
  2. [PEAR][DB] PHPonTrax : problème de connexion à mysql
    Par Ttienne dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/10/2006, 12h40
  3. Problèmes de connexion à MySQL ?
    Par DiabloZizi dans le forum Débuter
    Réponses: 3
    Dernier message: 03/09/2006, 20h21
  4. [OLEANE] Problème de connexion MySQL
    Par Tocraz dans le forum Autres hébergeurs
    Réponses: 3
    Dernier message: 14/06/2006, 09h47
  5. [dreamweaver] problème de connexion Mysql avec dreamweaver
    Par goma771 dans le forum Dreamweaver
    Réponses: 4
    Dernier message: 30/01/2006, 14h14

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