Consumir WebService SOAP C#

0 respostas
G

Criei um SOAP em java e estou tentando consumi-lo em C#, porem não está dando erro…
Erro

Caused by: javax.xml.bind.UnmarshalException: elemento inesperado (uri:"http://Ws.wsFINGER.com.br/", local:"Pais"). Os elementos esperados são <{}pais>
	... 58 more

Java ----
Classe ws

@Stateless
@WebService
public class wsPais {
	private DAO<Pais> dao = new DAO<Pais>(Pais.class);
	@WebMethod(operationName = "Salvar")
	public String Salvar(@WebParam(name = "pais") Pais pais) {
		dao.salva(pais);
		pais = new Pais();
		return "Ok";
	}
 }

Classe Pais

@XmlRootElement(name = "Pais")
@XmlAccessorType(XmlAccessType.FIELD)
@Entity
public class Pais {

	// Fields

	@Id
	@GeneratedValue
	private Long id;

	private String nome;

	private String sigla;

	private String nacionalidade;

	@Type(type = "true_false")
	private boolean status;

	public Pais() {
		super();
	}

	public Pais(Long id, String nome, String sigla, String nacionalidade, List<Estado> estados, boolean status) {
		super();
		this.id = id;
		this.nome = nome;
		this.sigla = sigla;
		this.nacionalidade = nacionalidade;
		this.status = status;
		this.estados = estados;
	}
	public Pais(Long id, String nome, String sigla, String nacionalidade, boolean status) {
		super();
		this.id = id;
		this.nome = nome;
		this.sigla = sigla;
		this.nacionalidade = nacionalidade;
		this.status = status; 
	}
	@XmlTransient
	@OneToMany(mappedBy = "pais", fetch = FetchType.LAZY)
	// @Where(clause = "status='T'")
	private List<Estado> estados;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getSigla() {
		return sigla;
	}

	public void setSigla(String sigla) {
		this.sigla = sigla;
	}

	public boolean isStatus() {
		return status;
	}

	public void setStatus(boolean status) {
		this.status = status;
	}

	public List<Estado> getEstados() {
		return estados;
	}

	public void setEstados(List<Estado> estados) {
		this.estados = estados;
	}

	public String getNacionalidade() {
		return nacionalidade;
	}

	public void setNacionalidade(String nacionalidade) {
		this.nacionalidade = nacionalidade;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		result = prime * result + ((nacionalidade == null) ? 0 : nacionalidade.hashCode());
		result = prime * result + ((nome == null) ? 0 : nome.hashCode());
		result = prime * result + ((sigla == null) ? 0 : sigla.hashCode());
		result = prime * result + (status ? 1231 : 1237);
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Pais other = (Pais) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		if (nacionalidade == null) {
			if (other.nacionalidade != null)
				return false;
		} else if (!nacionalidade.equals(other.nacionalidade))
			return false;
		if (nome == null) {
			if (other.nome != null)
				return false;
		} else if (!nome.equals(other.nome))
			return false;
		if (sigla == null) {
			if (other.sigla != null)
				return false;
		} else if (!sigla.equals(other.sigla))
			return false;
		if (status != other.status)
			return false;
		return true;
	}

	@Override
	public String toString() {
		return nome;
	}

}

agora consumindo em C#

protected void bntAdicionar_Click(object sender, EventArgs e)
        {
            wsPais.wsPaisClient wsPaisCli = new wsPais.wsPaisClient();
            wsPais.pais pais = new wsPais.pais();
            pais.nome = txtNome.Text;
            pais.nacionalidade = txtNacionalidade.Text;
            pais.sigla = txtSigla.Text;
            pais.status = true;
            pais.id = 1L;
            string retorno = wsPaisCli.Salvar(pais);
        }
Criado 13 de maio de 2016
Respostas 0
Participantes 1