HTTP Status 400 – Bad Request Spring

Alguém sabe qual o motivo que está dando erro 400?

package br.com.padaria.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import br.com.padaria.dao.CargoDAO;
import br.com.padaria.dao.FuncionarioDAO;
import br.com.padaria.model.Funcionario;

@Controller
public class FuncionarioController {
	
	@RequestMapping("/getFuncionarios")
	public String getFuncionarios(Model model){
		model.addAttribute("funcionarios", new FuncionarioDAO().getFuncionarios());
		model.addAttribute("cargos", new CargoDAO().getCargos());
		model.addAttribute("limpa", "limpa");
		return "cadastroFuncionario";
	}
	                  
	@RequestMapping("/adicionaFuncionario")
	public String adicionaFuncionario(Funcionario funcionario){
		new FuncionarioDAO().adiciona(funcionario);
		return "forward:getFuncionarios";
	}
	
	@RequestMapping("/removeFuncionario")
	public String removeFuncionario(Funcionario funcionario){
		new FuncionarioDAO().remove(funcionario);
		return "forward:getFuncionarios";
	}
	
	@RequestMapping("/getFuncionario")
	public String getFuncionario(Funcionario funcionario,Model model){
		model.addAttribute("funcionario", new FuncionarioDAO().getFuncionario(funcionario));
		return "cadastroFuncionario";
	}
	
	@RequestMapping("/alteraFuncionario")
	public String alteraFuncionario(Funcionario funcionario){
		new FuncionarioDAO().altera(funcionario);
		return "forward:getFuncionarios";
	}
	
}

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
	<title>Insert title here</title>
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
	<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/main.css"/>">
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
	<script type="text/javascript" src="<c:url value="/resources/js/funcionario.js"/>"></script>
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
	<body class="funcionarioImagem">
		<h1 class="col-md-offset-4 texto-branco">Cadastro de Funcionários</h1>
		<div class="container">
			<div class="formulario">
				<form id="formAdicionaFuncionario" action="adicionaFuncionario" method="post">
					<div class="form-group">
						<label class="texto-branco">Nome:</label>
						<input type="text" name="nome" class="form-control"/>
					</div>
					<div class="form-group">
						<label class="texto-branco">Salário</label>
						<input type="text" name="salario" class="form-control"/>
					</div>
					<div class="form-group">
						<label class="texto-branco">Cargo:</label>
						<select name="cargo" class="form-control">
							<option value="">Selecione um cargo</option>
							<c:forEach items="${cargos}" var="cargo">
								<option value="${cargo.descricao}">${cargo.descricao}</option>
							</c:forEach>
						</select>
					</div>
					<div class="form-group">
						<label class="texto-branco">Data de Admissão:</label>
						<input type="date" name="dataAdmissao" class="form-control"/>
					</div>
					<div class="form-group">
						<label class="texto-branco">Data de Demissão:</label>
						<input type="date" name="dataDemissao" class="form-control"/>
					</div>
					
					<input type="submit" id="btnSalvarFuncionario" data-limpa="${limpa}" data-id="${funcionario.id}" value="Salvar" class="btn btn-primary">
				</form>	
			</div>
			<c:if test="${not empty funcionarios}">
				<div class="table-responsive">
					<table class="table">
						<thead>
							<tr>
								<th>Nome</th>
								<th>Salário</th>
								<th>Cargo</th>
								<th>Data de Admissão</th>
								<th>Data de Demissão</th>
								<th></th>
							</tr>
						</thead>
						<tbody>
							<c:forEach items="${funcionarios}" var="funcionario">
								<tr>
									<td>${funcionario.nome}</td>
									<td>${funcionario.salario}</td>
									<td>${funcionario.cargo}</td>
									<td>${funcionario.dataAdmissao}</td>
									<td>${funcionario.dataDemissao}</td>
									<td>
										<a href="removeFuncionario?id=${funcionario.id}"><img src="/resources/img/remove.png"></a>
										<a href="getFuncionario?id=${funcionario.id}"><img src="/resources/img/edit.png"></a>
									</td>
								</tr>
							</c:forEach>
						</tbody>
					</table>
				</div>
			</c:if>
		</div>
	</body>
</html>

package br.com.padaria.model;

import java.math.BigDecimal;
import java.util.Calendar;

public class Funcionario {
	
	private Long id;

	private String nome;

	private BigDecimal salario;

	private String cargo;

	private Calendar dataAdmissao;

	private Calendar dataDemissao;
	
	public Long getId() {
		return id;
	}
	
	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public BigDecimal getSalario() {
		return salario;
	}

	public void setSalario(BigDecimal salario) {
		this.salario = salario;
	}

	public String getCargo() {
		return cargo;
	}

	public void setCargo(String cargo) {
		this.cargo = cargo;
	}

	public Calendar getDataAdmissao() {
		return dataAdmissao;
	}

	public void setDataAdmissao(Calendar dataAdmissao) {
		this.dataAdmissao = dataAdmissao;
	}

	public Calendar getDataDemissao() {
		return dataDemissao;
	}

	public void setDataDemissao(Calendar dataDemissao) {
		this.dataDemissao = dataDemissao;
	}

}

O erro 400 se refere a um erro no que se está enviado ao webservice.

Não… o problema ocorria, pois meus atributos Calendar e Bigdecimal estavam sem anotation…

Leia

Os atributos Calendar e Bigdecimal, estavam vindo como string da tela, e estavam tentando setar no bigdecimal e no calendar, logo não estavam conseguindo, acredito que quando coloquei a annotation, eles foram convertidos para os tipos respectivos, logo arrumei assim…