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
