Salve, salve pessoal se você está trabalhando com Spring MVC e se deparou com a exception org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation este artigo visa ajudar a resolver este problema.
Isso se deve ao fato do HttpMessageConverter não estar configurado ou configurado com erros. A solução é editar sua classe de configurações WebMvcConfig adicionando dois converters ResourceHttpMessageConverter e MappingJackson2HttpMessageConverter. Isso é bastante simples e basta que você adicione o trecho de código abaixo:
@Override public void configureMessageConverters(List<httpmessageconverter<?>> converters) { converters.add(converterResourceHttpMessageConverter()); converters.add(converterJackson2Http()); super.configureMessageConverters(converters); } @Bean public MappingJackson2HttpMessageConverter converterJackson2Http() { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); //do your customizations here... return converter; } @Bean public ResourceHttpMessageConverter converterResourceHttpMessageConverter() { ResourceHttpMessageConverter converter = new ResourceHttpMessageConverter(); //do your customizations here... return converter; }
Bom mas pode ser que você se depare ainda com a exception java.lang.ClassNotFoundException: org.codehaus.jackson.JsonProcessingException. E a solução também é simples, certifique se de que as dependências jackson-core-asl, jackson-mapper-asl e jackson-jaxrs-xml-provider estejam adicionadas ao projeto, caso não estejam adicionem. Para quem usa Maven eu vou facilitar ainda mais as coisas, basta adicionar esse trecho de código ao seu pom.xml e ser feliz, para os demais é só sair catando jar na pata.
<dependency> <groupid>org.codehaus.jackson</groupid> <artifactid>jackson-core-asl</artifactid> <version>XYZ</version> </dependency> <dependency> <groupid>org.codehaus.jackson</groupid> <artifactid>jackson-mapper-asl</artifactid> <version>XYZ</version> </dependency> <dependency> <groupid>com.fasterxml.jackson.jaxrs</groupid> <artifactid>jackson-jaxrs-xml-provider</artifactid> <version>XYZ</version> </dependency>
Feito isto é só inicializar novamente o projeto que as coisas irão funcionar.
Treinamentos relacionados com este post