Ola amigos estou com um problema com a integração spring mvc + jquery + jackson-1.9.8 vamos a duvida:
A seguir esta meio codigo que estou usando pra testar
entidade que quero retornar
[code]
@Id
@Basic(optional = false)
@Column(name = “codigo”)
private Long codigo;
@Column(name = “nome”)
private String nome;
@OneToMany(cascade = CascadeType.ALL, mappedBy = “codigoTeste”)
private List outraTabelaList;[/code]
meu controller
[code]@RequestMapping(value = “/listar”, method = RequestMethod.POST)
@ResponseBody
public List listar(){
return service.todos();
}[/code]
meu js
$('#btnListar').click(
function() {
$.post(
'listar',
function(data) {
$.each(data, function(i, val) {
alert(val.nome);
});
}).error(function() {
$('#resultado').text('Ocorreu um erro');
});
});
Quando eu chamo o listar o seguinte erro aparece no Firebug
"NetworkError: 406 Not Acceptable - http://localhost:8080/Teste/listar
Porem durante alguns teste que fiz percebi que quando eu tento retornar a mesma entidade sem a o relacionamento, ou seja, sem a List
o mesmo codigo acima funciona corretamente, entao resumindo como retornar um objeto com relacionamentos no BD usando Spring MVC jquery e jackson
desde ja agradeço.
Já tentou utilizar produces = “application/json” na anotação @RequestMapping?
Ola amigo
fiz o que vc recomendou mas o erro persiste, o incrivel é que antes de eu criar um relacionamento pra essa tabela o mesmo codigo acima funcionava certinho, por isso eu acredito que o que pode estar causando o erro é o List<> responsavel pelo relacionamento
vc nao teria algum exemplo de como retornar valores vindos do BD
obrigado.
Estranho cara,
tenta ativar o log a nível de debug para saber se tem alguma exceção no momento que tenta serializar o objeto.
Ola denovo akigo
entao fiz oq voce disse e coloquei o log em nivel de debug e algumas coisas me chamaram a atenção ai vai
[code]DEBUG: org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - Resolving exception from handler [public br.com.teste.entity.Teste br.com.teste.controller.HomeController.listar()]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
DEBUG: org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver - Resolving exception from handler [public br.com.teste.entity.Teste br.com.teste.controller.HomeController.listar()]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
DEBUG: org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolving exception from handler [public br.com.teste.entity.Teste br.com.teste.controller.HomeController.listar()]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
DEBUG: org.springframework.web.servlet.DispatcherServlet - Null ModelAndView returned to DispatcherServlet with name ‘appServlet’: assuming HandlerAdapter completed request handling
DEBUG: org.springframework.web.servlet.DispatcherServlet - Successfully completed request[/code]
porém não sei dizer o que significa ou se é algo relevante oq vc acha
obrigado.
Cara, dei uma procurada no google e vi duas situações que podem ser relacionadas a isto.
Os teus beans tem os métodos gets e sets adequados? Vi alguém reclamando que se você nomear eles diferente, pode correr este tipo de situação. Tente deixar só as propriedades e gere os getters e setters com o eclipse pra testar.
Segundo, você tá usando a anotação mvc:annotation-driven?
Entao amigo infelizmente não funcionou refiz os get e set e o annotation-driven eu ja tinha aqui desde o começo vou ter q dar uma pesquisada mais afundo talvez o modo como eu esteja fazendo esteja errado não sei, a unica coisa que me incomoda e que antes de eu relacionar a entidade com outra tabela tudo estava funcionando mas programação assim mesmo
Obrigado pelo ajuda mesmo assim
Conseguiu resolver amigao ?
estou com o mesmo problema… complicado
Cara, estou tendo um problema parecido, você conseguiu arrumar ?
Segue meu código:
@RequestMapping (value="/listaPorUf", method=RequestMethod.POST)
public @ResponseBody List listaPorUf(IbgeView ibge, Model model){
this.listaporuf = this.daoFactory.getIbgeDao().pesquisaIbgePorUf(ibge);
return this.listaporuf;
}
Segue o Erro:
“NetworkError: 406 Not Acceptable - http://localhost:8080/ceos/fmk/ibge/listaPorUf.htm”