Spring 4.0.x JSON / Ajax HTTP / 1.1 406 não aceitável

Estou trabalhando com o Spring 4.0.5.RELEASE, o Spring MVC apenasConfiguração Java

Eu tenho no meu pom.xml o seguinte:

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>${jackson.version}</version>
</dependency>

Where <jackson.version>1.9.13</jackson.version>

Estou usando a configuração padrão do Spring sobre JSON. Em alguns@Controller Eu tenho o seguinte:

@RequestMapping(value="/getjsonperson", 
                method=RequestMethod.GET, 
                produces=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody Person getJSONPerson(){
    logger.info("getJSONPerson - getjsonperson");
    return PersonFactory.createPerson();
}

@RequestMapping(value="/getperson.json", method=RequestMethod.GET)
public @ResponseBody Person getPersonJSON(){
    logger.info("getPerson - getpersonJSON");
    return PersonFactory.createPerson();
} 

E funciona bem. Eu posso ver no navegador o valor JSON retornado. Até aqui tudo está bem.

Agora eu quero integrar o Spring MVC + (JSON AJAX)

Eu tenho este tutorial como referênciaSpring MVC: Ajax e JQuery

Ok, eu tenho o seguinte sobre JSON com AJAX (trabalhando através de uma caixa de seleção ou combinação para carregar um segundo conjunto ou coleção)

Nota: O URL é estático, mesmo que eu use apenas/spring-utility/facturaajax/findallproductobycategoria.htm o problema persiste

$("#categoria").change(function(event){

    var json = {"id" : $(this).find("option:selected").val(), "nombre" : $(this).find("option:selected").text() };

    $.ajax({
        url: "http://localhost:8080/spring-utility/facturaajax/findallproductobycategoria.htm" ,
        data: JSON.stringify(json),
        type: "POST",

        beforeSend: function(xhr) {
            xhr.setRequestHeader("Accept", "application/json");
            xhr.setRequestHeader("Content-Type", "application/json");
        },

        success: function(products) {
            alert("all fine!!!!");
        }

    });

    //event.preventDefault();
});

Sobre o controlador Eu tenho o seguinte para lidar com o processo ajax

@RequestMapping(value="/findallproductobycategoria.htm", 
                method=RequestMethod.POST,
                consumes = MediaType.APPLICATION_JSON_VALUE,
                produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody Set<Producto> findAllProductoByCategoria(@RequestBody Categoria categoria){
    logger.info("findAllProductoByCategoria: {}", categoria.toString());
    return this.fakeMultipleRepository.findAllProductoByCategoria(categoria.getId());
}

Mesmo se eu usarheaders="Accept=application/json" ouheaders="Content-Type=application/json" o problema persiste.

Os POJOs são serializáveis

public class Categoria implements Serializable {

    private static final long serialVersionUID = 5655804710111228325L;

public class Producto implements Serializable {

    private static final long serialVersionUID = -6362590479124787529L;

O problema: Quando altero o valor do meu elemento html select, sempre recebo oHTTP / 1.1 406 Não Aceitável (veja as duas imagens anexas)

BTW: O lado do servidor nunca é chamado.

Eu já li outras postagens no SO. Praticamente todos eles mencionam Jackson e são baseados no Spring3.2.x.

Mesmo se eu adicionar o seguinte, o problema persistirá

        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-jaxrs</artifactId>
            <version>${jackson.version}</version>
        </dependency>

O que está faltando? Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion