Spring MVC: jackson-mapper-asl не работает с Spring 4

Я пытаюсь преобразовать список объектов в json с помощью библиотек jackson-mapper-asl, но в ответ получаю ошибку http 406. jackson-mapper-asl библиотеки находятся в моем пути к классу. Ниже приведен код моего контроллера Spring MVC:

@RequestMapping(value="/find-sub-categories/{parentId}", method=RequestMethod.GET)
@ResponseBody public List<ProductCategory> findSubCategories(@PathVariable(value="parentId") ProductCategory productCategory) {
    logger.info("In ADMIN findSubCategories Contoller AJAX GET");

    List<ProductCategory> categories = productCategoryService.findAllChildProductCategoriesByParent(productCategory);
    return categories;
}

Мой код запроса Ajax:

$.ajax({
            url: url+"/"+parentId,
            type: 'GET',
            success: function(result) {
                var arr = $.parseJSON(result);
----------------------- 

person Harmeet Singh Taara    schedule 23.02.2015    source источник
comment
вы используете неправильные зависимости Джексона, проверьте здесь stackoverflow.com/questions/26825276/   -  person Master Slave    schedule 23.02.2015
comment
вы добавляете ?contentType : application/json; charset = utf-8, dataType: json, а также какую версию jackson использует? поддержка Джексона была сосредоточена на версии 2.0+ весной 4.   -  person Ali.Mojtehedy    schedule 23.02.2015


Ответы (2)


С spring 4 нам нужно использовать следующую зависимость:

<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-databind</artifactId>
 <version>2.5.1</version>
</dependency>

jackson-mapper-asl используется с spring 3.x. Спасибо @Master Slave за действительный комментарий. Нажмите здесь для получения дополнительной информации: Spring 4 RestController JSON : характеристики недопустимы согласно заголовкам принятия запроса

person Harmeet Singh Taara    schedule 24.02.2015
comment
Если я добавлю вышеуказанную зависимость, мой сервер tomcat 8 остановится. В чем будет проблема? - person Ajoe; 31.07.2017

Я думаю, вы использовали допустимый тип параметра переменной пути, например:

@RequestMapping(value="/find-sub-categories/{parentId}", method=RequestMethod.GET)
@ResponseBody public List<ProductCategory>   findSubCategories@PathVariable(value="parentId") ProductCategory productCategory)

вместо этого используйте следующий заголовок метода, он может работать

 @ResponseBody public List<ProductCategory>   findSubCategories(@PathVariable Integer parentId)
person Nalla Srinivas    schedule 24.02.2015
comment
то, как я использую @PathVariable, - это функциональность Spring-Data. Проблема только с неправильной зависимостью, которую я использовал. Публикую ответ уже. - person Harmeet Singh Taara; 24.02.2015