Pessoal,

Montei uma app de exemplo baseado no tutorial do Erko (swiz) e to
enfrentando um problema que é o seguinte:

Tenho um remoteObject que tem como espelho um "service" no server, porém
sempre que chamo o método passando
um objeto de domínio recebo o seguinte erro:

[RPC Fault faultString="Error deserializing client message."
faultCode="Client.Packet.Encoding" faultDetail="null"]
at mx.rpc::AbstractInvoker/
http://www.adobe.com/2006/flex/mx/internal::faultHandler()[E
:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:345]
at
mx.rpc::Responder/fault()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:68]
at
mx.rpc::AsyncRequest/fault()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:113]
at
NetConnectionMessageResponder/statusHandler()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:609]
at
mx.messaging::MessageResponder/status()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\messaging\MessageResponder.as:264]

Minha classe de serviço remoto tem os seguintes métodos

public void salva(Usuario usuario)  //metodo "real"
public void teste(String value)  //metodo para teste
public void testeObj(Object obj)  //metodo para teste

Se eu uso salva(usuario) da o erro acima....
Agora, se ao invés de eu usar "salva(usuario)", usar
testeObj(usuario), aí funciona...chega no server e exibe o
sysout, o mesmo ocorre se eu usar teste("uma string"),
tbm funciona 100%. Só dá o erro quando passo um usuário para o método
salva que espera como parâmetro um Usuario

Alguém sabe me dizer o que pode estar acontecendo?
Acredito que o problema não seja com o Swiz, porque os outros métodos
funcionam....

Uso o FB4 + BlazeDS 4 (blazeds-bin-4.0.0.14931.zip) + Spring...
Mas ta tudo beleza (as chamadas remotas, só não funfa quando passo
um usuario para um método que espera um usuário)

Abaixo segue como estão as minhas classes

*No projeto Java*
*
*
*
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Usuario extends DomainEntity {

private static final long serialVersionUID = 1L;

@Column(name = "nome", nullable = false, length = 60)
private String nome;

@Column(name = "login", nullable = false, length = 20)
private String login;

@Column(name = "senha", nullable = false, length = 20)
private String senha;

@Column(name = "email", length = 100)
private String email;

public Usuario() {}

        //Getters e Setters omitidos
}

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class DomainEntity implements IDomainEntity {

private static final long serialVersionUID = 1L;

@Id
private Long id;
 @Column(name = "data_hora_criacao")
private Date dataHoraCriacao;
 @ManyToOne
@JoinColumn(name = "id_usuario_criacao")
private Usuario usuarioCriacao;

public DomainEntity() {
this.id = ObjectIdFactory.makeObjectId();
}

      //Getters e Setters omitidos
}

public interface IDomainEntity extends Serializable {

public Object getId();
}

public interface IUsuarioUseCase {

public void salva(Usuario usuario);
public void teste(String value); //Metodo incluido para Teste
public void testeObj(Object value);
//Metodo incluido para Teste
}

*
@Service
@RemotingDestination
public class UsuarioUseCase implements IUsuarioUseCase {

@Override
public void salva(Usuario usuario) {
System.out.println("usuario=" + usuario.getNome());
}

@Override
public void teste(String value) {
System.out.println("value=" + value);
}
 @Override
public void testeObj(Object obj) {
System.out.println("value=" + obj);
}
}

*No projeto Flex*
*
*
Classes que "espelham" as do server

-=-=-=-=-=-=-=-=-=
*
package nome.package
{
 [RemoteClass(alias="nome.pacote.projetojava.IDomainEntity")]
[Bindable]
public interface IDomainEntity
{
 }
}

-=-=-=-=-=-=-=-=-=
package
nome.package
{
 [RemoteClass(alias="
nome.pacote.projetojava.DomainEntity")]
[Bindable]
public class DomainEntity implements IDomainEntity
{
public var id : Object;
}
}
*

-=-=-=-=-=-=-=-=-=
package *
nome.package
*
{
 [RemoteClass(alias="nome.pacote.projetojava.Usuario")]
[Bindable]
public class Usuario extends DomainEntity
{
public var nome : String;
public var login : String;
public var senha : String;
public var email : String;
 }
}

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*Metodo da classe UsuarioController.as*

[Mediate(event="UsuarioEvent.SAVE", properties="usuario")]
public function save(usuario:Usuario):void {
this.serviceHelper.executeServiceCall(
usuarioUseCase.salva(usuario), *//Se eu chamo esse metodo passando usuario
da o erro acima, se uso os outros metodos nao da problema (como mencionado
acima)*
usuarioService_noReturn_resultHandler,
usuarioService_faultHandler
);
}



-- 
[]'s
Leonardo

Linux User #488650
Ubuntu User #27045
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a