Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1039 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  java.sql.SQLException: Bad handshake

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

java.sql.SQLException: Bad handshake

n°1521907
piloupy
Posté le 28-02-2007 à 18:21:19  profilanswer
 

Bonjour,
 
Contexte :
 
Je reprends un projet web (struts, ...). Après des recherches, j'ai fini par cerner ce que je pense être pertinent pour le problème.
 
Lorsque j'accède à cette page JSP :
 
index.jsp

<%@ page import="java.sql.*" %>
 
<%
String url = "jdbc:mysql://localhost/schema";
String user = "user";
String pass = "password";
String myDriver = "com.mysql.jdbc.Driver";
 
try {
  Class.forName(myDriver);
  con = DriverManager.getConnection(url, user, pass);
} catch (Exception e) {...}
%>


 
j'ai le message d'erreur suivant sur la console :
 

java.sql.SQLException: Communication link failure: Bad handshake
 at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:652)
 at com.mysql.jdbc.Connection.createNewIO(Connection.java:1511)
 at com.mysql.jdbc.Connection.<init>(Connection.java:485)
 at com.mysql.jdbc.Driver.connect(Driver.java:341)
 at java.sql.DriverManager.getConnection(DriverManager.java:582)
 at java.sql.DriverManager.getConnection(DriverManager.java:185)
 at org.apache.jsp.index_jsp._jspService(index_jsp.java:56)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 at java.lang.Thread.run(Thread.java:619)


 
Ce qui est étrange, c'est que le même fichier dans un autre projet Tomcat marche sans problème.
 
De même, une application Java écrite à la main dans le même projet (c'est-à-dire utilisant les mêmes lib sous Eclipse) arrive également à établir la connexion à la base de données MySQL.
 
Ce n'est donc pas le code qui est à incriminer, mais l'environnement sous Eclipse pour ce projet Tomcat qui pose problème (a priori).
 
Je suis vraiment sans réponse face à ça depuis 2 semaines. Est-ce que vous avez une idée ou des pistes ?
 
---
 
Environnement :
 
- Apache Tomcat 5.5.20
- Eclipse 3.2.1
- Plugin Eclipse Tomcat (Sysdeo)
- Java EE 5 SDK
- mysql-connector-java-5.0.4-bin.jar
- Struts-1.3
- Hibernate2
 
- Serveur MySQL 5.0.27
 
Je lance évidemment le serveur Tomcat à partir d'Eclipse.
 
piloupy

mood
Publicité
Posté le 28-02-2007 à 18:21:19  profilanswer
 

n°1522350
piloupy
Posté le 01-03-2007 à 15:39:24  profilanswer
 

Dans une application Tomcat, il y a un répertoire WEB-INF/lib dans lequel visiblement eclipse va chercher certaines lib comme celle de mysql-connector-java.
 
Comme c'est un projet que je reprends, il y avait deja la lib mysql-connector-java-3.x.jar et j'y avais mis en plus la version 5.x. Le Bad Handshake vient de la confusion entre les 2 lib.
 
Comme beaucoup d'informaticiens vous le diront, c'est par hasard que j'ai trouvé  d'où venait l'erreur, en copiant le répertoire lib vers mon projet vierge qui arrivait à faire marcher JDBC. Quand il n'a plus marché, ça m'a mis la puce à l'oreille.
 
piloupy


Message édité par piloupy le 01-03-2007 à 15:39:43
n°1524750
cooltwan
Posté le 06-03-2007 à 18:48:23  profilanswer
 

Oui cette erreur est symptomatique d'une désynchronisation entre ta version de mysql et ta version du connecteur JAVA. Ca m'était arrivé quand j'avais mis à jour mysql sans mettre à jour mon connecteur.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  java.sql.SQLException: Bad handshake

 

Sujets relatifs
[Java] fichier de log non bloqué[Java Swing] Alignement d'un "Box" component à gauche
java pdf->xml[Java] JEditorPane et couleur du texte
[Java] I/O, zip, et botanique[Java] Tomcat LogConfigurationException help!
verifier fichier (extension, type mime...) depuis un applet java[JAVA] gestion droits utilisateurs
signer une applet java (jarsigner...)[JAVA] mpossible de lancer le service Tomcat 5.5 sur Win2003
Plus de sujets relatifs à : java.sql.SQLException: Bad handshake


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR