Resolvido pessoal.... *Solução: baixei a nova versão (**4.0.1.16258) **do BlazeDS 4.*
2010/8/24 Leonardo Ribeiro <[email protected]> > 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<http://www.adobe.com/2006/flex/mx/internal::faultHandler()%5BE> > :\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 > -- []'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
