title: com.mysql.jdbc.Driver fails to compile for JSP
body: <p>I am trying to make a logIn system with JSP and connect to a MySQL database, and get the following error:
  <img src="https://i.stack.imgur.com/GZkfa.png" alt="Error message"></p>
  
  <p>My code:</p>
  
  <pre><code>&lt;%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"
  import="com.core.bibit.service.Security"
  import="javax.servlet.*"
  import="java.util.*"
  import="com.mysql.jdbc.Driver"
  %&gt;
  &lt;%
  String username = request.getParameter("username");
  String password = request.getParameter("password");
  
  boolean test = new Security().validateUser(username, password);
  System.out.println("Authen: " + test);
  if(test){
      response.sendRedirect("test.jsp");
  }else{
      response.sendRedirect("about.jsp");
  } 
  %&gt;
  </code></pre>
  
  <p>and </p>
  
  <pre><code>package com.core.bibit.service;
  import com.mysql.jdbc.Driver;
  
  import java.io.IOException;
  import java.io.UnsupportedEncodingException;
  import java.security.MessageDigest;
  import java.security.NoSuchAlgorithmException;
  import java.sql.Connection;
  import java.sql.DriverManager;
  import java.sql.PreparedStatement;
  import java.sql.ResultSet;
  import java.sql.SQLException;
  import java.util.Arrays;
  
  import sun.misc.BASE64Decoder;
  import sun.misc.BASE64Encoder;
  
  public class Security {
  
      private final static int ITERATION_NUMBER = 1000;
  
      public Security(){
  
      }
  
      ...
  
      public boolean validateUser(String userName, String password){
  
          boolean valid = false;
  
          Connection con = null;
          PreparedStatement ps = null;
          ResultSet rs = null;
  
          try{
              Class.forName("com.mysql.jdbc.Driver");
              con = DriverManager.getConnection("jdbc:mysql://localhost:8889/bibit?"
                                                               + "user=root&amp;password=root");                  
  
              String query = "SELECT * FROM bibit.User WHERE username = ?";
  
              ps = con.prepareStatement(query);
              ps.setString(1, userName);
  
              rs = ps.executeQuery();
  
              String digest, salt;
  
              if(rs.next()){
                  digest = rs.getString("PASSWORD");
                  salt = rs.getString("SALT");
  
                  System.out.println("Digest: " + digest);
                  System.out.println("Salt: " + salt);
  
                  if(digest == null || salt == null){
                      System.out.println("IF1");
                      throw new SQLException("Database inconsistant Salt or Digested Password altered");
                  }
                  if(rs.next()){
                      System.out.println("IF2");
                      throw new SQLException("Database inconsistent two CREDENTIALS with the same LOGIN");
                  }
                  /*else{
                      System.out.println("IF3");
                      digest = "000000000000000000000000000=";
                      salt = "00000000000=";
                  }*/
  
                  byte[] bDigest = base64ToByte(digest);
                  byte[] bSalt = base64ToByte(salt);
  
                  //compute digest
                  byte[] proposedDigest = getHash(ITERATION_NUMBER, password, bSalt);
                  System.out.println("bDigest: " + bDigest);
                  System.out.println("proDigest: " + proposedDigest);
  
                  System.out.println("Response: " +     Arrays.equals(proposedDigest, bDigest)); // &amp;&amp; valid)
                  valid = Arrays.equals(proposedDigest, bDigest);
              }
  
  
  
  
          }catch(Exception e){
              e.printStackTrace();
          }finally{
              try {
              //  rs.close();
                  //ps.close();
                  //con.close();
              } catch (Exception e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
  
              return valid;
  
          }
      }
  
  }
  </code></pre>
  
  <p>I use TomEE / Tomcat 7.0 and my MySQL library is: mysql-connector-java-5.1, and I have tried to add this to the server.xml file:</p>
  
  <pre><code>&lt;Resource name="jdbc/DATABASENAME" type="javax.sql.DataSource" maxActive="4" maxIdle="2"    username="root" password="" maxWait="23000" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:8889/bibit"&gt;&lt;/Resource&gt;
  </code></pre>
  
  <p>Can anyone explain what is wrong and perhaps how to fix it or just a push in the right direction?</p>
  
  <p><strong>SOLUTION:</strong> add the mysql connector through Eclipse if one start the sever through there and import files in one line as shown below </p>