Meu xml de requisição:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.estoque.caelum.com.br/">
<soapenv:Header/>
<soapenv:Body>
<ws:todosOsItens>
<!--Optional:-->
<filtros/>
</ws:todosOsItens>
</soapenv:Body>
</soapenv:Envelope>
Meu EstoqueWS:
package br.com.caelum.estoque.ws;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import br.com.caelum.estoque.modelo.item.Filtro;
import br.com.caelum.estoque.modelo.item.Filtros;
import br.com.caelum.estoque.modelo.item.Item;
import br.com.caelum.estoque.modelo.item.ItemDao;
import br.com.caelum.estoque.modelo.item.ListaItens;
@WebService
public class EstoqueWS {
private ItemDao dao = new ItemDao();
@WebMethod(operationName = "todosOsItens")
@WebResult(name = "itens")
public ListaItens getItens(@WebParam(name = "filtros") Filtros filtros) {
System.out.println("Chamando getItens()...");
List<Filtro> lista = filtros.getLista();
List<Item> itensResultado = dao.todosItens();
return new ListaItens(itensResultado);
}
}
Fitros WS:
package br.com.caelum.estoque.modelo.item;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement()
@XmlAccessorType(XmlAccessType.FIELD)
public class Filtro {
@XmlElement(name = "filtro")
private List<Filtro> filtros;
private TipoItem tipo;
private String nome;
public TipoItem getTipo() {
return tipo;
}
public void setTipo(TipoItem tipo) {
this.tipo = tipo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public List<Filtro> getLista() {
return filtros;
}
}