1 Reply Latest reply on Apr 27, 2005 7:21 AM by gseel

    No suitable driver

    micknic

      Hi

      I created a JSP file with the following code:

      <html>
      <head>
      <title>Enregistrer un travail</title>
      </head>
      
      
      
      <%@ page language="java" import="java.sql.*"%>
      <body>
      <%
       String nom = request.getParameter("login");
       String mdp = request.getParameter("mdp");
      
       Class.forName("com.mysql.jdbc.Driver");
       Connection myConn = DriverManager.getConnection("jdbc:mysql:prieur?user=&password=");
       Statement stmt = myConn.createStatement();
       ResultSet myResultSet = stmt.executeQuery("select * from ouvriers");
      
       String nomouv = "";
       String mdepass = "";
      
       if (myResultSet != null)
       {
       while (myResultSet.next()) {
       nomouv = myResultSet.getString("nomouv");
       mdepass = myResultSet.getString("mdepass");
       }
       }
       if (nomouv == nom && mdepass == mdp)
       {
       %>
       <H1>Introduction d'un nouveau travail </H1><p>
       <br>
       Veuillez complèter les champs ci dessous<p>
       <br>
       <form name="formulaire" action="" method="post" onsubmit="return valid(this.elements)">
       <table border="0" width="100%">
       <tr>
       <td width="45%">
       <table border="0" width="100%">
       <tr>
       <td width="40%">Numéro de compte:</td>
       <td><input type="text" name="numcompte" size="15" title="inserer le numéro de compte ou le nom du titulaire"></td>
       </tr>
       <tr>
       <td>Numéro de travail:</td>
       <td><input type="text" name="numtrav" size ="15" title="ce numéro est généré automatiquement"></td>
       </tr>
       <tr>
       <td>Temps de travail:</td>
       <td><input type="text" name="temps" size="5" title="temps en minutes de travail">min
       </tr>
       </table>
       <td width="55%"><textarea name="description" cols="40" rows="5" title="inscrivez ici une description du travail effectué" ></textarea> </td>
       </tr>
       </table><p>
       <br>
      
       <table border="0" width="100%">
       <tr>
       <td width="50%">
       <select name="selectmat" size="6" id="selectmat">
       <option selected>Clous </option>
       <option>ampoule</option>
       </select>
       </td>
       <td width="15%">
       Quantité:<input type="text" name="quantite" size="3" title="indiquez la quantité utilisée du matériel">
       </td>
       <td width="35%">
       <input type="button" value="Suivant" onclick="plus();">
       <input type="text" name="choix">
       <input type="text" name="choix2">
       <input type="submit" value="Valider">
       </td>
       </tr>
       </table>
       </form>
      
      <script language="JavaScript">
      var s=document.getElementById('selectmat');
      var user_input = s.options[s.selectedIndex].firstChild.value
      
      var n=document.getElementById('quantite');
      var tab=new Array();
      var tab2=new Array();
      
      for(i=0;i<s.options.length;i++){
      
      tab=0};
      
       // à chaque clic sur "ajouter"
       // le nombre associé à l'article sélectionné est réévalué;
       function plus(){
       tab[s.selectedIndex]=(/^\d{1,2}$/.test(n.value)) ? n.value : 0;
      
       tab2[s.selectedIndex]=s.options[s.selectedIndex].text;
      
       }
      
      
       // quand on valide le formulaire,
       // la chaîne correspondant au nombre de chaque article est
       // envoyée dans un champ caché (ici,visible!);
       // côté serveur, il n'y a plusqu'à faire un split;
       function valid(f){
       f["choix"].value=tab.join();
       f["choix2"].value=tab2.join();
       return false// à supprimer
       }
       </script>
      
      
      
      
      
      
       <p>
       <br>
       Ci dessous se trouve la liste des travaux que vous avez déjà encodé. Sélectionnez en un pour afficher les données correspondantes.<p>
       <form action="indexc.jsp" method="post">
       <table border="0" width="100%">
       <tr>
       <td width="50%">
       <%
       ResultSet myResultSet2 = stmt.executeQuery("SELECT * FROM travaux WHERE 'nomouv'=nom");
       if (myResultSet2 != null) {
       while (myResultSet.next()) {
       String date = myResultSet2.getString("date");
       String numtrav = myResultSet2.getString("numtrav");
      
       %>
      
       <select name="travail" size="6">
       <option selected><%= date %> </option>
       <option> mickael</option>
      
       </select>
       <% } } %>
       </td>
       <td>
       <input type="button" value="Afficher">
       </td>
       </tr>
       </table>
       </form>
       <% } else {
       %>
       Identifiant ou mot de passe incorrect veuillez recommencer.
       <% } %>
      
      


      When I try to run it I got the following message
      [Quote]
      HTTP Status 500 -

      --------------------------------------------------------------------------------

      type Exception report

      message

      description The server encountered an internal error () that prevented it from fulfilling this request.

      exception

      javax.servlet.ServletException: No suitable driver
      org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
      org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
      org.apache.jsp.indexc_jsp._jspService(org.apache.jsp.indexc_jsp:216)
      org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
      org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
      org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)


      root cause

      java.sql.SQLException: No suitable driver
      java.sql.DriverManager.getConnection(DriverManager.java:545)
      java.sql.DriverManager.getConnection(DriverManager.java:193)
      org.apache.jsp.indexc_jsp._jspService(org.apache.jsp.indexc_jsp:57)
      org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
      org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
      org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)


      note The full stack trace of the root cause is available in the Apache Tomcat/5.5.8 logs.



        • 1. Re: No suitable driver
          gseel

          You haven't got the set-up right for MySQL: jar in the wrong place? wrong driver name? some other MySQL issue.

          Should you really be going to the database from a jsp anyway?