Bom dia! Estou criando uma aplicação WEB com o Spring MVC. Boa parte das requisições são feitas por ajax retornando os dados para o front-end em json.
Porém, gostaria de ignorar os atributos do objeto que estão LAZY. Estou usando o jackson e ao invés de ignora ele lança um erro informando que não conseguiu carregar a ojeto LAZY.
org.springframework.http.converter.HttpMessageNotWritableException: Could not write content: failed to lazily initialize a collection of role: br.com.cpfl.models.TurnoPlanejado.indisponibilidades, could not initialize proxy - no Session (through reference chain: java.util.ArrayList[0]->br.com.cpfl.models.TurnoPlanejado["indisponibilidades"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: failed to lazily initialize a collection of role: br.com.cpfl.models.TurnoPlanejado.indisponibilidades, could not initialize proxy - no Session (through reference chain: java.util.ArrayList[0]->br.com.cpfl.models.TurnoPlanejado["indisponibilidades"])
Pesquisando na internet, verifiquei que poderia utilizar um conversor de mensagens, cadastrando na classe de configuração do Spring, e fiz conforme abaixo. Porém, o erro permanece.
@EnableWebMvc
@ComponentScan(basePackages={"br.com.gt"})
public class AppWebConfiguration extends WebMvcConfigurationSupport{
//REMOVI OUTRAS CONFIGURAÇÕES
@Bean
public MappingJackson2HttpMessageConverter jacksonMessageConverter(){
MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
ObjectMapper mapper = new ObjectMapper();
//Registering Hibernate4Module to support lazy objects
mapper.registerModule(new Hibernate4Module());
messageConverter.setObjectMapper(mapper);
return messageConverter;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//Here we add our custom-configured HttpMessageConverter
converters.add(jacksonMessageConverter());
super.configureMessageConverters(converters);
}
}
Alguém sabe o que devo fazer?