eu tenho um formulario, digito o que quero e ele busca as ocorrencias.
mas…
nao funciona ele da um java.lang.NullPointerException
segue meu método
public List<Veiculo> busca(String modelo, String placa){
CriteriaBuilder cb = manager.getCriteriaBuilder();
CriteriaQuery<Veiculo> cq = cb.createQuery(Veiculo.class);
Root<Veiculo> veiculo = cq.from(Veiculo.class);
cq.select(veiculo);
// tbl_veiculos_descricao é o campo da tabela, mas o nome do atributo da classe é apenas descrição.
// tbl_veiculos_placa é o campo da tabela, mas o nome do atributo da classe é apenas placa.
Predicate predicate = cb.and(
cb.like( veiculo.<String>get("tbl_veiculos_descricao"), "%" + modelo + "%" ),
cb.like( veiculo.<String>get("tbl_veiculos_placa"), "%" + placa + "%" ) );
cq.where(predicate);
TypedQuery<Veiculo> query = manager.createQuery(cq);
List<Veiculo> veiculos = query.getResultList();
return veiculos;
}
Com esse metodo parece estar tudo ok, só sua action, jsp e o printStackTrace Completo.
leandroleo
Eita, ta osso viu!
dcorteztec
só falta sua action, jsp e o printStackTrace Completo, para podermos analisar melhor o erro
leandroleo
//e logo abaixo minha printStackTracejava.lang.NullPointerExceptionatorg.hibernate.ejb.criteria.path.AbstractPathImpl.unknownAttribute(AbstractPathImpl.java:110)atorg.hibernate.ejb.criteria.path.AbstractPathImpl.locateAttribute(AbstractPathImpl.java:218)atorg.hibernate.ejb.criteria.path.AbstractPathImpl.get(AbstractPathImpl.java:189)atbr.com.mg.frota.model.VeiculoDAO.busca(VeiculoDAO.java:28)atbr.com.mg.frota.action.BuscaVeiculosAction.execute(BuscaVeiculosAction.java:38)atorg.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)atorg.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)atorg.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)atorg.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)atorg.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)atorg.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)atorg.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)atorg.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)atorg.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:617)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:717)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)atorg.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)atorg.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)atjava.lang.Thread.run(UnknownSource)
// meu actionpackagebr.com.mg.frota.action;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importorg.apache.struts.action.ActionMessage;importorg.apache.struts.action.ActionMessages;importbr.com.mg.frota.form.BuscaVeiculosForm;importbr.com.mg.frota.model.VeiculoDAO;publicclassBuscaVeiculosActionextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{Listveiculos=null;ActionMessageserros=newActionMessages();BuscaVeiculosFormbuscaVeiculosFrom=(BuscaVeiculosForm)form;try{VeiculoDAOveiculoDAO=newVeiculoDAO();Stringmodelo=buscaVeiculosFrom.getModelo();Stringplaca=buscaVeiculosFrom.getPlaca();// chamada do método buscaveiculos=veiculoDAO.busca(modelo,placa);request.setAttribute("veiculoListBean",veiculos);}catch(Exceptione){e.printStackTrace();erros.add(ActionMessages.GLOBAL_MESSAGE,newActionMessage("errors.veiculos.lista"));getServlet().log("Erro carregando a lista de veículos",e);}if(!erros.isEmpty()){saveErrors(request,erros);return(mapping.findForward("failure"));}else{return(mapping.findForward("success"));}}}
dcorteztec
O problema eu acho que esta jsp, vc “setou” request.setAttribute("veiculoListBean", veiculos);
então na sua jsp seus atributos deveriam estar assim
Tenta ai, não lembro muito de struts 1
leandroleo
ok, vou tentar … obrigado!
leandroleo
Opa!
Moss c acredita que o erro era um jar errado! aff
vacilei e deixou 2 jar’s iguais mas com versões diferentes!