Erro useBean inválido no Eclipse (tomcat v. 10)

Apenas para um nível de aprendizado, criei uma aplicação java no Eclipse, e está apresentando o seguinte erro:

Message /validaracesso.jsp (line: [2], column: [0]) The value for the useBean class attribute [com.crudjspjava.bean.Usuario] is invalid.
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.apache.jasper.JasperException: /validaracesso.jsp (line: [2], column: [0]) The value for the useBean class attribute [com.crudjspjava.bean.Usuario] is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)

Alguém poderia me dar um help? Estou usando o Eclipse e o TomCat versão 10.

Foi criado um html para receber os valores do usuário:

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Acessar Sistema</title>
<link href="bootstrap.min.css" rel="stylesheet" />
<link href="Login.css" rel="stylesheet" type="text/css"  />
</head>
<body>
	<div class="container">
		<div class="content">
			<h1 title="titulo">Acesso</h1>
			<form action="validaracesso.jsp" method="post">
				<div class="modal-body">
					<div class="form-group">
						<label>Login</label> <input type="login" name="login"
							CssClass="form-control" placeholder="Digite o Login." />
					</div>

					<div class="form-group">
						<label>Senha</label> <input type="password" name="senha" 
							CssClass="form-control" placeholder="Digite a Senha" />
					</div>
				</div>

				<div class="modal-footer">
					<input type="submit" value="Acessar" CssClass="btn btn-primary">
				</div>
			</form>
		</div>
	</div>
</body>
</html>	
	
	
Foi criado um JSP (validaracesso.jsp):
<%@page import="com.crudjspjava.dao.UsuarioDao"%>
<jsp:useBean id="u" class="com.crudjspjava.bean.Usuario"></jsp:useBean>
<jsp:setProperty property="*" name="u" />

<%
int i = UsuarioDao.validarAcesso(u);
if (i > 0) {
	request.getSession().setAttribute("usuario", Integer.toString(i));
    response.sendRedirect("listarcadastro.jsp");	
} else {
 
	if (session!=null){
	   session.invalidate();
	}
	
	response.sendRedirect("validarusuario-error.jsp");
}
%>

Foi criado uma classe (Usuario.java) :
package com.crudjspjava.bean;

public class Usuario {
	private int id;
	private String nome;
	private String email;
	private String fone;
	private String login;
	private String senha;
	
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getFone() {
		return fone;
	}
	public void setFone(String fone) {
		this.fone = fone;
	}
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
}


E, por fim, foi criado uma classe DAO (UsuarioDao.java):

package com.crudjspjava.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.crudjspjava.bean.Usuario;

public class UsuarioDao {

	// Método para Pegar a String de Conexao
	public static Connection getConnection() {
		Connection con = null;
		try {
			String caminho = "jdbc:jtds:sqlserver://mssql.XXXXXXXX.XXX.br/XXXXXXXXX";
			String usuario = "YYYYYYY";
			String senha = "WWWWWWWWW";

			Class.forName("net.sourceforge.jtds.jdbc.Driver");
			con = DriverManager.getConnection(caminho, usuario, senha);

		} catch (Exception e) {
			System.out.print(e);
		}

		return con;
	}
	
	// Método para validar o acesso do Usuario
	public static int validarAcesso(Usuario u) {
		int status = 0;
		try {
			Connection con = getConnection();
			PreparedStatement ps = con.prepareStatement("{call st_ValidarAcesso(?,?)}");
			ps.setString(1, u.getLogin());
			ps.setString(2, u.getSenha());
			
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				status = rs.getInt("IDUser");
			}					
						
		} catch (Exception e) {
			System.out.println(e);
		}
		
		return status;
	}


	// Método para Listar 1 Cliente
	public static Usuario getRegistroById(int id) {
		Usuario user = null;
		try {
			Connection con = getConnection();
			PreparedStatement ps = con.prepareStatement("{call st_ListarUmCliente(?)}");
			ps.setInt(1, id);

			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				user = new Usuario();
				user.setId(rs.getInt("IDCliente"));
				user.setNome(rs.getString("NomeCliente"));
				user.setEmail(rs.getString("EmailCliente"));
				user.setFone(rs.getString("FoneCliente"));
			}
		} catch (Exception e) {
			System.out.print(e);
		}

		return user;
	}

	// Método para Listar Clientes
	public static List<Usuario> getAllUsuarios() {
		List<Usuario> list = new ArrayList<Usuario>();
		try {
			Connection con = getConnection();
			PreparedStatement ps = con.prepareStatement("{call st_ListarClientes}");
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				Usuario user = new Usuario();
				user.setId(rs.getInt("IDCliente"));
				user.setNome(rs.getString("NomeCliente"));
				user.setEmail(rs.getString("EmailCliente"));
				user.setFone(rs.getString("FoneCliente"));
				list.add(user);
			}
		} catch (Exception e) {
			System.out.print(e);
		}

		return list;
	}
}