8
respostas

Meu XML não foi alterado

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;
    }

}
8 respostas

Opa Douglas, vc fez a republicação e atualizou o SOAP UI? Estou perguntando isso só pq de vez em quando são apenas alguns detalhes...

Sim. Fiz.

Oi Douglas,

como, normalmente isso acontece pois o soap ui nao atualiza o "request" mesmo atualizando o wsdl.

dentro do soap ui apague o request ou crie um novo projeto.

abs

Fiz isso. Mas ainda não funcionou.

Oi Douglas,

o cliente continua executando normalmente ou está dando erro? Se continua executando normalmente, o servidor nao atualizou o WSDL (talvez nao fez deploy ou eclipse nao está buildando corretamente).

abs

no meu caso funcionou excluindo e criando outro projeto, obrigado Nico.

Você tem que atualizar duas coisas:

1) O EstoqueWSPortBinding, apertando F5

2) E o "Request 1". Para atualizar esse, abra o request e, lá em cima na barra de ícones, tem um quadrado com o ícone de atualização (com as setas formando um círculo). É nele que o seu XML no SoapUI será atualizado.

Tentou isso também?

Estou com o mesmo problema, nenhuma das alternativas acima resolveram.