5
respostas

ERRO DE NULL POINTER NA PERSONALIZAÇÃO DO PARAMETRO

public ListaItens getItens(@WebParam(name="filtros") Filtros filtros)

Ao fazer esta alteração(personalizar o nome do parametro), esta ocorrendo um null pointer nesta linha: List lista = filtros.getLista();

Eu mudei o name para "oFiltro" , e o erro parou de ocorrer. Isto tem a ver com alguma versão do Java?

5 respostas

Oi Glauco,

Não me parece ser nenhum problema com versão do java. Você poderia mandar o código completo ?

Boa noite, Glauco! Como vai?

Provavelmente o que está acontecendo é que na requisição que vc está enviando para esse serviço, vc está utilizando o parâmetro "oFiltro", por isso tudo funciona com @WebParam(name="oFiltro") e gera o NullPointerException ao fazer @WebParam(name="filtros").

Se meu prognóstico estiver correto, vc precisa enviar a requisição com o parâmetro "filtros" em vez de "oFiltro" para que tudo funcione da forma como deseja.

Dá uma olhada aí e veja se com o que falei vc consegue resolver o problema! Mas caso não consiga, faça como o Otávio te disse que a gente tenta te ajudar!

Grande abraço e bons estudos, meu aluno!

@WebService public class EstoqueWS {

private ItemDao dao = new ItemDao();

@WebMethod(operationName="todosOsItens")
@WebResult(name="item")
public ListaItens getItens(@WebParam(name="filtros") Filtros filtros) {
    System.out.println("Chamando getItens()");
    List<Filtro> lista = filtros.getLista(); // ERRO NESTA LINHA
    List<Item> itensResultado = dao.todosItens(lista);
    return new ListaItens(itensResultado);
}

@WebMethod(operationName="CadastrarItem") 
@WebResult(name="item")
public Item cadastrarItem(@WebParam(name="tokem", header=true) TokenUsuario token  ,  @WebParam(name="item") Item item) throws AutorizacaoException {
  System.out.println("Cadastrando " + item);
  System.out.println("TOKEM " + token);
  if(!new TokenDao().ehValido(token)) {
        throw new AutorizacaoException("Autorizacao falhou");
  }

  new ItemValidador(item).validate();

  this.dao.cadastrar(item);
  return item;
}

}

<ws:todosOsItens>
         <ws:filtros>
            <filtro>
               <nome>Moto</nome>
               <tipo>Celular</tipo>
            </filtro>
         </ws:filtros>
      </ws:todosOsItens>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
         <faultcode>S:Server</faultcode>
         <faultstring>java.lang.NullPointerException</faultstring>
      </S:Fault>
   </S:Body>
</S:Envelope>