GRAVE: Servlet.service() for servlet [springmvc] in context with path

alguém pode me ajudar, não estou conseguindo passa as informações do meu formulário para o banco de dados mysql, o erro é esse:

jul 29, 2017 12:36:26 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [springmvc] in context with path [/tarefa] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long] with root cause
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1019)
at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3600)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2541)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2311)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:834)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:347)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at br.com.caelum.tarefas.ConnectionFactory.getConnection(ConnectionFactory.java:18)
at br.com.caelum.tarefas.dao.JdbcTarefaDao.(JdbcTarefaDao.java:19)
at br.com.caelum.tarefas.controller.TarefasController.adiciona(TarefasController.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:748)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:833)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

java.math.BigInteger cannot be cast to java.lang.Long

Parece que você está querendo inserir um objeto do tipo BigInteger para um campo do tipo Long no MySQL ou tentando fazer a conversão de BigInteger para Long.

Acho que é isso.

pior que não, criei uma tabela com o campo bigint auto-intencrement no mysql não estou fazendo select e sim um insert, sou iniciante em java e na programação.

Pode postar a classe onde está o PreparedStatement do insert?

Acredito ser essa classe “springmvc”, ou não?

package br.com.caelum.tarefas.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import br.com.caelum.tarefas.modelo.Tarefa;
import br.com.caelum.tarefas.ConnectionFactory;

public class JdbcTarefaDao {
private final Connection connection;

public JdbcTarefaDao() {
	try {
		this.connection = new ConnectionFactory().getConnection();
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

public void adiciona(Tarefa tarefa) {
	String sql = "insert into tarefas (descricao, finalizado) values (?,?)";
	PreparedStatement stmt;
	try {
		stmt = connection.prepareStatement(sql);
		stmt.setString(1, tarefa.getDescricao());
		stmt.setBoolean(2, tarefa.isFinalizado());
		stmt.execute();
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

public void remove(Tarefa tarefa) {

	if (tarefa.getId() == null) {
		throw new IllegalStateException("Id da tarefa não deve ser nula.");
	}

	String sql = "delete from tarefas where id = ?";
	PreparedStatement stmt;
	try {
		stmt = connection.prepareStatement(sql);
		stmt.setLong(1, tarefa.getId());
		stmt.execute();
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

public void altera(Tarefa tarefa) {
	String sql = "update tarefas set descricao = ?, finalizado = ?, dataFinalizacao = ? where id = ?";
	PreparedStatement stmt;
	try {
		stmt = connection.prepareStatement(sql);
		stmt.setString(1, tarefa.getDescricao());
		stmt.setBoolean(2, tarefa.isFinalizado());
		stmt.setDate(3, tarefa.getDataFinalizacao() != null ? new Date(
				tarefa.getDataFinalizacao().getTimeInMillis()) : null);
		stmt.setLong(4, tarefa.getId());
		stmt.execute();
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

public List<Tarefa> lista() {
	try {
		List<Tarefa> tarefas = new ArrayList<Tarefa>();
		PreparedStatement stmt = this.connection
				.prepareStatement("select * from tarefas");

		ResultSet rs = stmt.executeQuery();

		while (rs.next()) {
			// adiciona a tarefa na lista
			tarefas.add(populaTarefa(rs));
		}

		rs.close();
		stmt.close();

		return tarefas;
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

public Tarefa buscaPorId(Long id) {

	if (id == null) {
		throw new IllegalStateException("Id da tarefa não deve ser nula.");
	}

	try {
		PreparedStatement stmt = this.connection
				.prepareStatement("select * from tarefas where id = ?");
		stmt.setLong(1, id);

		ResultSet rs = stmt.executeQuery();

		if (rs.next()) {
			return populaTarefa(rs);
		}

		rs.close();
		stmt.close();

		return null;
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

public void finaliza(Long id) {

	if (id == null) {
		throw new IllegalStateException("Id da tarefa não deve ser nula.");
	}

	String sql = "update tarefas set finalizado = ?, dataFinalizacao = ? where id = ?";
	PreparedStatement stmt;
	try {
		stmt = connection.prepareStatement(sql);
		stmt.setBoolean(1, true);
		stmt.setDate(2, new Date(Calendar.getInstance().getTimeInMillis()));
		stmt.setLong(3, id);
		stmt.execute();
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

private Tarefa populaTarefa(ResultSet rs) throws SQLException {
	Tarefa tarefa = new Tarefa();

	// popula o objeto tarefa
	tarefa.setId(rs.getLong("id"));
	tarefa.setDescricao(rs.getString("descricao"));
	tarefa.setFinalizado(rs.getBoolean("finalizado"));

	// popula a data de finalizacao da tarefa, fazendo a conversao
	Date data = rs.getDate("dataFinalizacao");
	if (data != null) {
		Calendar dataFinalizacao = Calendar.getInstance();
		dataFinalizacao.setTime(data);
		tarefa.setDataFinalizacao(dataFinalizacao);
	}
	return tarefa;
}

}