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

Java EE Discussion :

problème lors de l'appel DriverManager.getConnection(this.url, this.username, this.password)


Sujet :

Java EE

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2020
    Messages : 6
    Points : 5
    Points
    5
    Par défaut problème lors de l'appel DriverManager.getConnection(this.url, this.username, this.password)
    Bonjour,

    Je me tourne vers vous pour comprendre un souci que j'ai avec une application Java JEE que je code sans aucun framework (pour le moment). Cette application est très basique pour le moment et récupère des données de MySQLWorkbench pour les afficher sur mon application.

    Mon souci :

    Depuis hier soir et seulement depuis hier soir (i.e cela fonctionne habituellement très bien !), la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Connection getConnection() throws SQLException {
            return DriverManager.getConnection(this.url, this.username, this.password);
    }
    ne semble plus fonctionner. J'ai vérifié en les affichant les valeurs des paramètres, ils sont bons (de toute façon je n'ai rien changé au code permettant la connexion, tout cela marchait et je n'y touchais plus du tout)

    Maintenant, lorsque je lance mon application comme habituellement, aucune erreur n'est remontée mais mes données ne sont pas récupérées.

    Autre information, J'ai remarqué en mettant du log un peu partout que dans le bloc try qui appelle la méthode getConnection donnée ci dessus, que le code n'est plus éxecuté après l'appel et l'application reprends dans le bloc finally.

    J'ai d'abord pensé à un souci avec le driver, la BDD a peut-être un souci mais je ne vois rien d'anormal.

    Je n'ai pas l'habitude de poster sur des forums alors je ne sais pas comment insérer des balises pour copier du code plus facilement. N'hésitez pas à me faire faire n'importe quelle manip pour débloquer cette situation. Puisque aucun message d'erreur ne survient, je ne peux que présumer que le driver bug ...

    Par avance merci à ceux qui prendront le temps de me lire.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ce genre de problème peut être lié à pas mal de choses (classpath, url, db, etc...), le mieux serait d'analyser l'erreur qui remonte. Si tu as juste un try finally, fait un try catch finally et fait un printStackTrace() sur l'exception.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2020
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour cette réponse, j'avais un try catch mais toute cette portion de code, je n'y avais pas ajouté de printStackTrace() et cela m'a donné la source du problème :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    java.sql.SQLException: The server time zone value 'CEST' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to utilize time zone support.
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
    	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
    	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
    	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
    	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
    	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
    	at java.sql.DriverManager.getConnection(DriverManager.java:664)
    	at java.sql.DriverManager.getConnection(DriverManager.java:247)
    	at allyouneed.bdd.DaoFactory.getConnection(DaoFactory.java:31)
    	at allyouneed.bdd.LoadMoviesImpl.loadMovies(LoadMoviesImpl.java:27)
    	at allyouneed.bdd.LoadMoviesImpl.loadGenres(LoadMoviesImpl.java:65)
    	at allyouneed.controleurs.ServletMain.doGet(ServletMain.java:38)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
    	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    	at java.lang.Thread.run(Thread.java:748)
    Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'CEST' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to utilize time zone support.
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
    	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
    	at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:132)
    	at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2118)
    	at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2142)
    	at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1310)
    	at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:967)
    	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826)
    	... 33 more
    J'ai donc modifié quelque peu mon code qui avant était :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public static DaoFactory getInstance() {
            // Chargement du driver
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
            } catch (ClassNotFoundException e) {
            }
     
            DaoFactory instance = new DaoFactory("jdbc:mysql://localhost:3306/allyouneed", "root", "password");
            return instance;        
        }
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public static DaoFactory getInstance() {
            // Chargement du driver
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
            } catch (ClassNotFoundException e) {
            }
     
            DaoFactory instance = new DaoFactory("jdbc:mysql://localhost:3306/allyouneed?serverTimezone=Europe/Paris", "root", "password");
            return instance;        
        }
    Cela fonctionne maintenant, merci Obutterlin pour le tips.

    Résolu !

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

Discussions similaires

  1. problème lors de l'appel à session_start
    Par kumo dans le forum Langage
    Réponses: 16
    Dernier message: 22/10/2007, 22h23
  2. Problème lors de l'appel d'une fonction Tsql
    Par mobscene dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 23/07/2007, 15h56
  3. [MySQL] problème lors de l'appel d'une fonction
    Par jexl dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/06/2007, 09h53
  4. Problème lors de l'appel d'une procédure stockée
    Par ToxiZz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/05/2006, 23h42
  5. [POO] Problème lors de l'appel d'une propriété d'un objet.
    Par akecoocoo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/08/2005, 08h51

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