Когда я отправляю с Postman
почтовый запрос с телом JSON (application/json
), я получаю эту ошибку в spring-mvc
(я не использую spring boot
)
Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json' not supported
Я перепробовал всеТАК темы об этой ошибке, но ничего не работает: (
Я также включил зависимости для Jackson
в моем pom.xml
для сопоставления объектов JSON в POJO.
Так почему он продолжает говорить мнеContent type 'application/json' not supported
!
Мой контроллер
@RestController
public class FooRest {
// even with consumes=MediaType.APPLICATION_JSON_VALUE it does not work
@RequestMapping(value = "/api/foo", method = RequestMethod.POST)
public String foo(HttpServletRequest request, @RequestBody FooBean bean) {
...
}
}
Мой конфиг
@Configuration
@EnableWebMvc
@ComponentScan({"controllers"})
public class AppConfig implements WebMvcConfigurer { }
Мой pom.xml
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
...
</dependencies>
версия скручивания
POST /MY-API HTTP/1.1
Host: 127.0.0.1:8080
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 89859e26-813d-fb53-8726-57900f02207e
{
//JSON OBJECT
}
РЕШЕНИЕ
Я изменил
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
На
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
И это работает наконец :) Может кто-нибудь объяснить мнепочему?