Problemas com Flex + Java

4 respostas
V

Boa tarde pessoal,

Estou com um problema na Utilizacao do meu Flex + Java.
Preciso retornar um objeto Usuario para minha tela de Flex.
Mas o mesmo apenas vem como object (generico) ao inves de Usuario.
Abaixo esta os metodos/classes:

Classe Dao

public T procura(int id) {
		return (T) this.session.load(this.classe, id);
	}

Classe ServiceUsuario

public Usuario carregaUsuario() {
		if(sessionResult() != null) {
			return this.daoFactory.getUsuarioDao().procura(Integer.parseInt(sessionResult()));
		} else {
			return null;
		}		
	}

AS

public function carregaUsuario():void {
	ServicoUsuario.carregaUsuario();
}

public function resultCarregaUsuario(event:ResultEvent):void {
	var user:Usuario = new Usuario();
	Alert.show(event.message.toString());
	user = event.result as Usuario;

	lblNomeUsuario.text = user.nome;
	lblPapel.text = "Acesso: " + user.papel.descricao;

}

MXML

<mx:RemoteObject id="ServicoUsuario" destination="ServicoUsuario">
		<mx:method name="carregaUsuario" result="resultCarregaUsuario(event)" fault="faultCarregaUsuario(event)" />
	</mx:RemoteObject>

Observe q dei um Alert.show no event.message, e o resultado é esse:
(mx.messaging.messages::AcknowledgeMessageExt)#0
body = (Object)#1
id = 1
login = “vinicius”
nome = “Vinicius Teixeira”
papel = (br.com.teste.vo::Papel)#2
descricao = “Administrador”
id = 1
nome = “ADM”
clientId = “DF3E97B9-D70A-067E-A98D-52AE6A2807D9”
correlationId = “86AA0B6F-57DB-BEC9-ACFA-0D351467BB01”
destination = “”
headers = (Object)#3
messageId = “DF3E97BC-480B-0111-B562-21B29436FF62”
timestamp = 1301596673224
timeToLive = 0

No campo body dessa messagem, deveria vim o objeto Usuario, mas apenas retorna Object.

Alguem pode me ajudar?

Vinicius Teixeira

4 Respostas

caio_ferreira

kra, seguinte, vc não deve ter usado no flex a classe Usuario. Faz o seguinte, no seu mxml principal, faz o seguinte. var user:Usuario = new Usuario(); Isso acontece, pq vc não utilizou a classe em nenhum lugar, então, quando compilou o swf, essa classe não foi compilada, estava com esse problema, um amigo do serviço me ajudou.

V

Fala billcaio,

Tentei aqui, mas nao deu nao.
Parece q o objeto q vem do Java, nao ta conseguindo converter em objeto flex.

:frowning:

Vinicius Teixeira

starkiller

Posta teu mxml completo, tem model ( Usuario.java ) e teu VO ( Usuario.as )

V

Segue os arquivos:

MXML

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="1024" height="768" 
		creationComplete="init()">

	<mx:RemoteObject id="ServicoUsuario" destination="ServicoUsuario">
		<mx:method name="doLogout" result="resultDoLogout(event)" />
		<mx:method name="carregaUsuario" result="resultCarregaUsuario(event)" fault="faultCarregaUsuario(event)" />
	</mx:RemoteObject>
	
	<mx:Script source="../as/telaInicial.as" />
	
	<mx:Panel x="754" y="10" width="260" height="120" layout="absolute" title="USUÁRIO">
		<mx:Label x="10" y="10" text="Seja bem vindo(a)" width="112"/>
		<mx:Label x="121" y="10" fontWeight="bold" width="109" id="lblNomeUsuario"/>
		<mx:HRule x="10" y="36" width="220"/>
		<mx:Button x="10" y="48" label="Clique aqui para logout" width="220" click="doLogout()">
			<mx:icon>@Embed(source='../../../../../WebContent/imgs/icone_logout.jpg')</mx:icon>
		</mx:Button>
	</mx:Panel>
	<mx:Button x="10" y="21" width="128" height="128" fillAlphas="[1.0, 1.0]" fillColors="[#FFFFFF, #FFFFFF]" toolTip="Clique aqui para realizar cadastros." borderColor="#FFFFFF" themeColor="#FFFFFF" click="showCadEscolha()">
		<mx:icon>@Embed(source='../../../../../WebContent/imgs/img_cadastro.jpg')</mx:icon>
	</mx:Button>
	<mx:Button x="10" y="293" width="128" height="128" fillAlphas="[1.0, 1.0]" fillColors="[#FFFFFF, #FFFFFF]" toolTip="Visualize relatórios do sistema.">
		<mx:icon>@Embed(source='../../../../../WebContent/imgs/img_relatorio.jpg')</mx:icon>
	</mx:Button>
	<mx:Button x="10" y="157" width="128" height="128" fillAlphas="[1.0, 1.0]" fillColors="[#FFFFFF, #FFFFFF]" toolTip="Consulte gráficos do sistema.">
		<mx:icon>@Embed(source='../../../../../WebContent/imgs/img_grafico.jpg')</mx:icon>
	</mx:Button>
	<mx:Button x="10" y="429" width="128" height="128" fillAlphas="[1.0, 1.0]" fillColors="[#FFFFFF, #FFFFFF]" toolTip="Ajuda.">
		<mx:icon>@Embed(source='../../../../../WebContent/imgs/img_ajuda.jpg')</mx:icon>
	</mx:Button>
	<mx:Panel x="534" y="10" width="212" height="120" layout="absolute" title="INFORMAÇÕES">
		<mx:Label x="10" y="10" id="lblDataHora" fontWeight="bold" width="172" textAlign="center"/>
		<mx:HRule x="10" y="36" width="172"/>
		<mx:Label x="10" y="46" text="Acesso: Administrador" width="172" textAlign="center" id="lblPapel"/>
	</mx:Panel>
	<mx:TextInput x="854" y="138" id="lblIdUsuario" visible="false"/>
</mx:Canvas>

Usuario (Modelo)

package br.com.usimcol.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

@Entity
public class Usuario {

    @Id
    @GeneratedValue
    private int id;
    private String nome;
    private String login;
    private String password;
    @ManyToOne
    private Papel papel;

    public int getId() {
        return id;
    }

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

    public String getNome() {
        return nome;
    }

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

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Papel getPapel() {
        return papel;
    }

    public void setPapel(Papel papel) {
        this.papel = papel;
    }
}

Usuario (VO)

package br.com.usimcol.vo
{
	[Bindable]
	[RemoteClass(alias="br.com.usimcol.model.Usuario")]
	public class Usuario
	{
		public var id:int;
		public var nome:String;
		public var login:String;
		public var password:String;
		public var papel:Papel;
	}
}

Muito Obrigado.

Vinicius Teixeira

Criado 31 de março de 2011
Ultima resposta 31 de mar. de 2011
Respostas 4
Participantes 3