Исключение неподдерживаемого типа мультимедиа с использованием EnableJsonFilter - PullRequest
0 голосов
/ 16 июня 2020

У меня есть простое приложение для загрузки Spring. Я реализовал метод контроллера POST. Метод POST выдает 415 Unsupported MediaType. Вот код и конфигурация:

Controller.java

@RequestMapping(consumes = { "application/json"}, produces = {"application/json"})
       public interface ServiceApi {
       @ResponseVersioning(value = "vr", service = "serviceActivated")
       @DynamicFilter(ActivatedServiceFilter.class)
      @RequestMapping(value = "/service/activated", method = RequestMethod.POST)
      ResponseEntity<ActivatedResponse>
       postServiceActivated(@RequestHeader("vr")String version,
                                           @RequestParam(value = "attributeGroup", required = false) String attributeGroup,
                                           @RequestBody ServiceRequest requestResource,
                                           HttpServletRequest request
    );`

AppConfig.java

@Configuration
@ComponentScan({"com.jfilter.components"})
@EnableJsonFilter
public class WebMvcConfig extends WebMvcConfigurerAdapter {

private final Logger log = LoggerFactory.getLogger(WebMvcConfig.class);

@PostConstruct
private void postConstruct(){
    log.debug("WebMvcConfig Created");
}

@Override
public void addInterceptors(InterceptorRegistry registry) {


    registry.addInterceptor(commonRestInterceptor());

}

@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
public CommonRestInterceptor commonRestInterceptor() {
    return new CommonRestInterceptor();
}



@Bean(name="partnerAppUser")
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public PartnerUser partnerUser() {
    return new PartnerUser.PartnerUserBuilder<>().build();
}

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

    converters.add(new MappingJackson2HttpMessageConverter());
    super.configureMessageConverters(converters);
}

@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
    configurer.favorPathExtension(false).
            favorParameter(true).
            parameterName("mediaType").
            ignoreAcceptHeader(true).
            useJaf(false).
            defaultContentType(MediaType.APPLICATION_JSON).
            mediaType("xml", MediaType.APPLICATION_XML).
            mediaType("json", MediaType.APPLICATION_JSON);
}
}`

Post call выдает 415, также добавлены эти зависимости

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

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

Я передаю MediaType как application / json из моего запроса для заголовков Content-type и Accept.

...