Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Communication link failure: Bad handshake


Автор: almostlost 19.3.2008, 12:36
Приветствую всех!

При попытке соединения с базой MySQL возникает SQLException.

Код

java.sql.SQLException: Communication link failure: Bad handshake

    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:659)

    at com.mysql.jdbc.Connection.createNewIO(Connection.java:1562)

    at com.mysql.jdbc.Connection.<init>(Connection.java:491)

    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)

    at java.sql.DriverManager.getConnection(DriverManager.java:512)

    at java.sql.DriverManager.getConnection(DriverManager.java:140)

    at iccc.DBConnectionPool.newConnection(DBConnectionPool.java:80)

    at iccc.DBConnectionPool.getConnection(DBConnectionPool.java:72)

    at iccc.ICCCLibrary.getDataFromTable(ICCCLibrary.java:246)

    at org.apache.jsp.menu$jsp._jspService(menu$jsp.java:95)

    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)

    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)

    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:683)

    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)

    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:497)

    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:819)

    at org.apache.jsp.tree$jsp._jspService(tree$jsp.java:284)

    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)

    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)

    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

    at iccc.ICCCFilter.doFilter(ICCCFilter.java:24)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)

    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)

    at java.lang.Thread.run(Thread.java:534)


В эксепшене говорится про незарегенный драйвер. Но я его регистрировал.

 
Код

 private DBConnectionPool(Properties properties,String dbName){
    this.properties = properties;
    this.dbName = dbName;
    this.loadDrivers();
    clients = 0;
    this.freeConnections = new ArrayList();
  }

  private void loadDrivers(){
    try{
      Class.forName("com.mysql.jdbc.Driver");
    }
    catch(Exception e){
      e.printStackTrace();
    }
  }


Эксепшен появляется именно в этом методе.
Код

  private Connection newConnection(){
    Connection con =null;
    try{
      con = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+dbName,properties);
      System.out.println("new connection was created");
    }
    catch(SQLException e)
    {
      e.printStackTrace();
      return null;
    }
    return con;
  }


при соединении с БД.
На сервере используется MySQL 5.0 
Драйвер я качал вот http://dev.mysql.com/downloads/connector/j/5.1.html


Автор: almostlost 20.3.2008, 12:10
Причем есть ставишь MySQL 3.0 и драйвер mysql-connector-java-3.0.8-stable-bin все прекрасно работает. Может у кого нить из вас есть MySQL - и нужный драйвер для работы. Напишите про их версии. Заранее благодарю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)