Web Service Restful (JAVA)

3 respostas
webjavaserver
N

Olá, estou com problemas no web service. Estou usando hibernate 4.0.1.Final e faço uma consulta ao meu banco de dados mysql que busca os clientes pelo nome. Percebi um detalhe, por exemplo se eu pesquisar clientes que tem o nome Paulo ele me retorna 117 registros e funciona, mas quando pesquiso clientes com nome Ana não funciona pois tem mais de 400 registros. Logo percebi que quando tem muitos registros dá o seguinte problema:
204: No Content
E depois disso o servidor para de funcionar, qualquer coisa que eu faça dá o seguinte erro: 500 (Internal Server Error).
Só volta a funcionar se eu reiniciar o tomcat.
Pensei que posso talvez resolver se aumentar o timeout do web service, mas mesmo que isso resolva meu problema, estou com dificuldade de fazer.
Obrigado pela atenção!

3 Respostas

P

vamos la

provavelmente falta memoria pra carregar tudo.

o que se faz geralmente é adicionar o conceito de PAGINAÇÃO.

retorna os 20 primeiros registros e diz “ó… tem 400 viu”"

ai vc pode trabalhar com dois parametros: tamanho da pagina ( pode ser fixo, ou em caso de omissao usar um padrão ) e numero da pagina ( por padrao é 0 ).

se a sua busca for ordenada ( por data, ou id pro exemplo ) fica facil calcular como pegar os dados, tipo:

Session session = sessionFactory.openSession();
Query query = sess.createQuery("From Foo");
query.setFirstResult(0); //  numero da pagina * quantidade
query.setMaxResults(10); / quantidade
List<Foo> fooList = fooList = query.list();

fonte

N

Obrigado pela ajuda.
Que bom, nessa página tem exemplo de Criteria também.

N

Eu não tive tempo de usar a paginação mas vou usar e acredito que vai resolver o problema.

Criado 11 de novembro de 2016
Ultima resposta 14 de nov. de 2016
Respostas 3
Participantes 2