2014-09-22 5 views
1

Я получаю знаменитые десериализации исключения JSon с пружинным 4.1.0.RELEASE:Spring @RequestBody десериализация JSON - неподдерживаемый тип медиа

org.springframework.web.HttpMediaTypeNotSupportedException: Тип содержимого «приложения/JSON, кодировка = UTF -8' не поддерживается

только что после заливки через несколько аналогичных нитей, я до сих пор не удалось найти причину проблемы

Это мой контроллер:

@RequestMapping(value = "/", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) 
public @ResponseBody String myMethod(@RequestBody MyObj request) { 

    ..... 
} 

POJO:

public class MyObj implements Serializable{ 

/** 
* 
*/ 
private static final long serialVersionUID = 1L; 

Integer something; 
Integer[] somethingElse; 

// Getters and setters 

}

У меня есть зависимость ДЖЕКСОН:

<dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.6</version> 
    </dependency> 

в моей POM

я выполняю следующий запрос:

{ «что-то»: 4, «somethingElse»: [1,2] }

Я проверил, что у меня правильно отформатированный JSON и его удар по соответствующему контроллеру на моем сервере.

Теперь, что может быть неправильным ????

EDIT: Это изменение в конфигурации исправлена ​​проблема:

В моей корневой конфигурации

<bean id="jacksonMessageConverter" 
    class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
    <property name="objectMapper" ref="jacksonObjectMapper" /> 
    <property name="supportedMediaTypes"> 
     <list> 
      <bean class="org.springframework.http.MediaType"> 
       <constructor-arg index="0" value="application" /> 
       <constructor-arg index="1" value="json" /> 
       <constructor-arg index="2" value="UTF-8" /> 
      </bean> 
     </list> 
    </property> 
</bean> 
<bean id="jacksonObjectMapper" class="com.fasterxml.jackson.databind.ObjectMapper"> 

В сервлета конфигурации

<mvc:annotation-driven> 
    <mvc:message-converters register-defaults="false">  
     <beans:ref bean="jacksonMessageConverter"></beans:ref> 
    </mvc:message-converters> 
</mvc:annotation-driven> 

В POM, добавьте последние версии
jackson-mapper-asl, jackson-core, jackson-databind , ДЖЕКСОНА-аннотаций

Спасибо всем

+0

Если вы можете показать свои книжные таблицы(), то это было бы полезно ... –

+1

Вы использовали аннотацию в вашем файле конфигурации xml или аннотации @EnableWebMvc? – RE350

+0

@ Prasad На самом деле это просто заглушка прямо сейчас. Исключение выбрасывается до выполнения метода контроллера. – AVM

ответ

1

Вы отключены MessageConverter по умолчанию? Кажется, что в вашей конфигурации отсутствует MappingJackson2MessageConverter.

Можете ли вы предоставить конфигурацию mvc?

+0

@Wlademar .. спасибо. Мне действительно не хватало MappingJackson2MessageConverter. Добавление его в мою конфигурацию mvc исправило проблему – AVM

Смежные вопросы