Spring MVC + jquery retornar entidade do BD

8 respostas
DarthCego

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
@Id
@Basic(optional = false)
@Column(name = "codigo")
private Long codigo;
	
@Column(name = "nome")
private String nome;
	
@OneToMany(cascade = CascadeType.ALL, mappedBy = "codigoTeste")
private List<OutraTabela> outraTabelaList;
meu controller
@RequestMapping(value = "/listar", method = RequestMethod.POST)
@ResponseBody
public List<Teste> listar(){
    
    return service.todos();
}
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.

8 Respostas

wagnerfrancisco

Já tentou utilizar produces = “application/json” na anotação @RequestMapping?

DarthCego

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.

wagnerfrancisco

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.

DarthCego

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

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

porém não sei dizer o que significa ou se é algo relevante oq vc acha

obrigado.

wagnerfrancisco

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?

DarthCego

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

R

Conseguiu resolver amigao ?

estou com o mesmo problema… complicado

A

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

Criado 13 de agosto de 2012
Ultima resposta 11 de dez. de 2014
Respostas 8
Participantes 4