Bom dia Jefries.
A explicação para isto é bem simples. Vamos supor que você tenha duas classes, Produto e Pessoa. Esqueça qualquer tipo de relacionamento que possa existir entre as duas classes.
Como pode ver, temos classes distintas, mesmo que tenham os mesmos atributos e métodos, ainda sim são classes distintas.
Em outra classe, você tem o seguinte método:
public void setProduto(Produto produto) {
//implementação
}
Agora, na chamada para este método, você faz o seguinte:
//Objeto Pessoa
Pessoa pessoa;
//Este método, recebe exclusivamente um objeto do tipo [u]Produto[/u].
public void setProduto(pessoa);
Isso vai acarretar em um ClassCastException (ignore qualque outro erro possível). Porque? Simplesmente porque não existe um possível para este caso, não implicitamente. Exemplo, se fosse assim:
public void setProduto(Object produto) {
//implementação
}
Ele aceitaria, mas dependendo de como você implementar este método, ele também vai acarretar em um ClassCastException.
Resumidamente, a passagem de parametros devem ser compatíveis, no seu caso, você passou um Objeto diferente do que a operação do seu Web Service esperava.
Certo? 
Abraços!