Problema com casting do Flex para JAVA

Olá pessoal, tudo bem?

Seguinte amigos, estou tentando implementar uma aplicação em Flex com JAVA onde eu mando do Flex para meu Controller no JAVA um objeto de uma classe em ActionScript …

Em JAVA eu faço sem problemas, mas no flex quando esse objeto chega ele acusa a exceção Erro:JAVAlang.NullPointerException : null

coloco abaixo meu codigo para mostrar q estou fazendo … sei q as classes não estão das melhores, mas na verdade estou ajudando uma amiga da faculdade e programei as classes de acordo com o diagrama de classes que ela me passou…rs… naum estou tirando a responsa da minha costa não…rs

[color=red]CLASSE DOMAINOBJECT.AS[/color]

package br.com.pfc.entidade
//[RemoteClass(alias="br.com.pfc.entidade.DomainObject")]
{
	public class DomainObject
	{
		protected var id:int;
		
		public function setId(id:int):void
		{
			this.id=id;
		}
		public function getId():int
		{
			return id;
		}
	}
}

[color=blue] ESSA CLASSE É ESPELHO DA CLASSE DOMAINOBJECT.JAVA[/color]

package br.com.pfc.entidade;

public class DomainObject {

	protected int id;

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

[color=red]CLASSE ALUNO.AS[/color]

package br.com.pfc.entidade
{
	[RemoteClass(alias="br.com.pfc.entidade.Aluno")]
	
	public class Aluno extends Pessoa
	{
		private var sexo:String;
		private var dataNascimento:String;
		private var matricula:int;
		private var serie:String;
		private var ano:String;
		private var turma:String;
		private var end:Endereco;
		private var mae:Mae;
		private var pai:Pai;
		
		public function getSexo():String {
			return sexo;
		}
		public function setSexo(sexo:String):void {
			this.sexo = sexo;
		}
		public function getDataNascimento():String {
			return dataNascimento;
		}
		public function setDataNascimento(dataNascimento:String):void {
			this.dataNascimento = dataNascimento;
		}
		public function getMatricula():int {
			return matricula;
		}
		public function setMatricula(matricula:int):void {
			this.matricula = matricula;
		}
		public function getSerie():String {
			return serie;
		}
		public function setSerie(serie:String):void {
			this.serie = serie;
		}
		public function getAno():String {
			return ano;
		}
		public function setAno(ano:String):void {
			this.ano = ano;
		}
		public function getTurma():String {
			return turma;
		}
		public function setTurma(turma:String):void {
			this.turma = turma;
		}
		public function getEnd():Endereco{
			return end;
		}
		public function setEnd(end:Endereco):void{
			this.end = end;
		}
		public function getMae():Mae{
			return mae;
		}
		public function setMae(mae:Mae):void{
			this.mae = mae;
		}
		public function getPai():Pai{
			return pai;
		}
		public function setPai(pai:Pai):void{
			this.pai = pai;
		}
	}
}

[color=blue]ESSA CLASSE É ESPELHO DA CLASSE ALUNO.JAVA[/color]

[color=red]CLASSE ALUNO.JAVA[/color]

package br.com.pfc.entidade;

public class Aluno extends Pessoa{

	private String sexo;
	private String dataNascimento;
	private int matricula;
	private String serie;
	private String ano;
	private String turma;
	private Endereco end;
	private Mae mae;
	private Pai pai;
	
	public String getSexo() {
		return sexo;
	}
	public void setSexo(String sexo) {
		this.sexo = sexo;
	}
	public String getDataNascimento() {
		return dataNascimento;
	}
	public void setDataNascimento(String dataNascimento) {
		this.dataNascimento = dataNascimento;
	}
	public int getMatricula() {
		return matricula;
	}
	public void setMatricula(int matricula) {
		this.matricula = matricula;
	}
	public String getSerie() {
		return serie;
	}
	public void setSerie(String serie) {
		this.serie = serie;
	}
	public String getAno() {
		return ano;
	}
	public void setAno(String ano) {
		this.ano = ano;
	}
	public String getTurma() {
		return turma;
	}
	public void setTurma(String turma) {
		this.turma = turma;
	}
	public Endereco getEnd(){
		return end;
	}
	public void setEnd(Endereco end){
		this.end = end;
	}
	public Mae getMae() {
		return mae;
	}
	public void setMae(Mae mae) {
		this.mae = mae;
	}
	public Pai getPai() {
		return pai;
	}
	public void setPai(Pai pai) {
		this.pai = pai;
	}
}

[color=red]MEU CONTROLE.JAVA[/color]

package br.com.pfc.controle;

import java.sql.SQLException;

import javax.swing.JOptionPane;

import br.com.pfc.DAO.DAOAluno;
import br.com.pfc.entidade.*;

public class Controle {

	public void chamarInserir (DomainObject obj) throws ClassNotFoundException, SQLException
	{
		if (obj instanceof Aluno)
		{
			Aluno alu = (Aluno) obj;
			
                        //essa showMessage aparece vazia
			JOptionPane.showMessageDialog(null,alu.getNome());

                        //Essa showMessage usei para testar se ele sabe se obj eh uma instancia de Aluno.Aqui ele acusa True
			JOptionPane.showMessageDialog(null,"OBJ eh instancia de Aluno? "+(obj instanceof Aluno));

                         //Essa showMessage usei para testar se realmente ele sabe se obj eh uma instancia de Aluno. Aqui ele acusa false
			JOptionPane.showMessageDialog(null,"OBJ eh instancia de Mâe? "+(obj instanceof Mae));
			
			DAOAluno daoAluno = new DAOAluno();
			daoAluno.cadastrar(alu);			
		}
	}
}

[color=red]CLASSE DAOALUNO.JAVA [/color]

package br.com.pfc.DAO;

import java.sql.*;

import javax.swing.JOptionPane;

import br.com.pfc.entidade.Aluno;
import br.com.pfc.utilitarios.Conexao;

public class DAOAluno extends DAO_Generico
{
	private static Connection connection;
	
	public boolean cadastrar(Aluno alu) throws ClassNotFoundException, SQLException 
	{		
			String sqlInsert = "INSERT INTO PFC_ALUNO (NOME_ALUNO,RG_ALUNO,CPF_ALUNO) VALUES ('"+alu.getNome()+"','"+alu.getRg()+"','"+alu.getCpf()+"')";
		                
			statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);	
			int cadastrado=statement.executeUpdate(sqlInsert);
			if (cadastrado==1)
				return true;
			else
				return false;
	}	 
	public boolean alterar(Aluno alu) throws ClassNotFoundException, SQLException 
	{
		connection = Conexao.conectar();		
		try
		{
				String sqlUpdate=null;
				
				statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);					
				int alterar = statement.executeUpdate(sqlUpdate);
				if (alterar == 1)
				{
					return true;
				}else
				{
					return false;
				}
		}catch (SQLException erro)
		{
			JOptionPane.showMessageDialog(null, "Erro na Altera��o dos dados. "+erro);
			return false;
		}		
		
	}	 
	public boolean excluir(int codigo) throws ClassNotFoundException, SQLException {
		connection = Conexao.conectar();		
		try
		{
				String sqlDelete=null;
				
				statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);									
				int exclusao = statement.executeUpdate(sqlDelete);
				if (exclusao==1)
				{
					return true;
				}else
				{
					return false;
				}
		}catch (SQLException erro)
		{
			JOptionPane.showMessageDialog(null, "Erro na Exclus�o dos dados. "+erro);
			return false;
		}
	}	 
}

[color=blue]QUE SE ESTENDE DA CLASSE DAO_GENERICO[/color]

package br.com.pfc.DAO;

import java.sql.ResultSet;
import java.sql.Statement;

public abstract class DAO_Generico 
{
	protected static Statement statement;
	protected static ResultSet resultset;
}

[color=red]MINHA VIEW EM .MXML[/color]

<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%" backgroundColor="#E2E2EA">
<mx:RemoteObject id="Controle" destination="Controle" result="resultado(event)" fault="erro(event)">
	<mx:method name="chamarInserir"/>
</mx:RemoteObject>

	<mx:Accordion x="116" y="0" width="554" height="312">
		<mx:Canvas id="canvasALuno" label="Dados Aluno" width="100%" height="100%" backgroundColor="#E2E2EA">
			<mx:TextInput x="130" y="43" width="249" id="textNomeAluno"/>
			<mx:Label x="27" y="45" text="Nome do Aluno:"/>
			<mx:TextInput x="114" y="86" id="textRgAluno"/>
			<mx:Label x="27" y="88" text="RG do Aluno:"/>
			<mx:TextInput x="382" y="86" id="textCpfAluno"/>
			<mx:Label x="295" y="88" text="CPF do Aluno:"/>
			<mx:TextInput x="126" y="139" width="122" id="textSexoAluno"/>
			<mx:Label x="27" y="141" text="Sexo do Aluno:"/>
			<mx:TextInput x="412" y="139" width="119" id="textNascAluno"/>
			<mx:Label x="282" y="141" text="Data Nasc. do Aluno:"/>
		</mx:Canvas>
		<mx:Canvas id="canvasEndereco" label="Endereço" width="100%" height="100%" backgroundColor="#E2E2EA">
			<mx:TextInput x="108" y="43" width="236" id="textLogradouro"/>
			<mx:Label x="27" y="45" text="Logradouro:"/>
			<mx:TextInput x="443" y="43" id="textNumero" width="57"/>
			<mx:Label x="382" y="45" text="Número:"/>
			<mx:TextInput x="124" y="86" id="textComplemento"/>
			<mx:Label x="27" y="88" text="Complemento:"/>
			<mx:TextInput x="84" y="139" width="134" id="textCidade"/>
			<mx:TextInput x="297" y="139" width="134" id="textCEP"/>
			<mx:Label x="258" y="141" text="CEP:"/>
			<mx:Label x="27" y="141" text="Cidade:"/>
			<mx:TextInput x="373" y="86" width="153" id="textBairro"/>
			<mx:Label x="323" y="88" text="Bairro:"/>
		</mx:Canvas>
		<mx:Canvas id="canvasContatos" label="Contatos" width="100%" height="100%" backgroundColor="#E2E2EA">
		</mx:Canvas>
		<mx:Canvas id="canvasMae" label="Dados Mãe" width="100%" height="100%" backgroundColor="#E2E2EA">
			<mx:TextInput x="122" y="43" width="249" id="textNomeMae"/>
			<mx:Label x="27" y="45" text="Nome da Mãe:"/>
			<mx:TextInput x="106" y="86" id="textRgmae"/>
			<mx:Label x="27" y="88" text="RG da Mãe:"/>
			<mx:TextInput x="382" y="86" id="textCpfMae"/>
			<mx:Label x="295" y="88" text="CPF do Mãe:"/>
			<mx:TextInput x="147" y="137" width="119" id="textProfissaoMae"/>
			<mx:Label x="27" y="139" text="Profissão da Mãe:"/>
		</mx:Canvas>
		<mx:Canvas id="canvasPai" label="Dados Pai" width="100%" height="100%" backgroundColor="#E2E2EA">
			<mx:TextInput x="122" y="43" width="249" id="textNomePai"/>
			<mx:Label x="27" y="45" text="Nome da Pai:"/>
			<mx:TextInput x="106" y="86" id="textRgPai"/>
			<mx:Label x="27" y="88" text="RG da Pai:"/>
			<mx:TextInput x="382" y="86" id="textCpfPai"/>
			<mx:Label x="295" y="88" text="CPF do Pai:"/>
			<mx:TextInput x="147" y="137" width="119" id="textProfissaoPai"/>
			<mx:Label x="27" y="139" text="Profissão da Pai:"/>
		</mx:Canvas>
	</mx:Accordion>
	
	<mx:Script>
		<![CDATA[
			import br.com.pfc.entidade.*;
			import mx.rpc.events.*;
			import mx.controls.Alert;
			
			[Bindable]
			var obj:DomainObject;
			var alu:Aluno = new Aluno();
			var end:Endereco = new Endereco();
			var mae:Mae;
			var pai:Pai = new Pai();
			
			public function setarValores():void
			{
				//Alert.show("entrou no metodo");
				
				
				//Alert.show ("variaveis declaradas");
				
				alu.setNome("Ola");
				alu.setRg(int(textRgAluno.text));
				alu.setCpf(int (textCpfAluno.text));
				alu.setSexo(textSexoAluno.text);
				alu.setDataNascimento(textNascAluno.text);
				
				//Alert.show("primeiro bloco de sets");
				
				/*setando os valores da classe endereço para seta-lo depois na classe aluno
				//como aluno tem um atributo chamado end que é do tipo Endereco, precisa
				//primeiro declarar um objeto de Endereco, setar os valores para depois
				//passar pra classe aluno, jah que o setEnd de aluno recebe um parametro
				//do tipo Endereco*/
				
				end.setRua(textLogradouro.text);
				end.setNumero(int (textNumero.text));
				end.setComplemento(textComplemento.text);
				end.setBairro(textBairro.text);
				
				//Alert.show("segundo bloco de sets");
				
				//setando endereço na classe aluno
				
				alu.setEnd(end);
				
				//setando os valores da classe Mae para seta-lo depois na classe aluno
				//como aluno tem um atributo chamado mae que é do tipo Mae, precisa
				//primeiro declarar um objeto de Mae, setar os valores para depois
				//passar pra classe aluno, jah que o setMae de aluno recebe um parametro
				//do tipo Mae
				
				mae = new Mae;
				
				//Alert.show(textLogradouro.text);
				
				mae.setNome(textNomeMae.text);
				mae.setRg(int (textRgmae.text));
				mae.setCpf(int (textCpfMae.text));
				mae.setProfissao(textProfissaoMae.text);
				
				//Alert.show(end.getNumero().toString());
				
				//setando mae na classe aluno
				alu.setMae(mae);
				
				//setando os valores da classe Pai para seta-lo depois na classe aluno
				//como aluno tem um atributo chamado pai que é do tipo Pai, precisa
				//primeiro declarar um objeto de Pai, setar os valores para depois
				//passar pra classe aluno, jah que o setPai de aluno recebe um parametro
				//do tipo Pai
				pai.setNome(textNomePai.text);
				pai.setRg(int (textRgPai.text));
				pai.setCpf(int (textCpfPai.text));
				pai.setProfissao(textProfissaoPai.text);
			
				//setando pai na classe aluno
				alu.setPai(pai);
				
				obj = (alu);
				Alert.show("cast feito");
				Alert.show(alu.getNome());
				
				Controle.chamarInserir (obj);
			}
			public function chamaInserir():void
			{
			
			}
			
			public function resultado(event:ResultEvent)
			{
				if (event.result==true)
					Alert.show("OK");
				else
					Alert.show(event.message.toString());
			}	
			public function erro(event:FaultEvent):void
			{
				Alert.show("Erro: "+event.fault.faultString);
			}
		]]>
	</mx:Script>
	<mx:Button x="142" y="340" label="Cadastrar" click="{setarValores()}" width="88" height="44"/>
	
</mx:Module>

Então, se vocês puderem me ajudar, agradeço demais…

E aproveitando a deixa, deixe tirar outra duvida. Usei o accordion para organizar as informações dessa tela de cadastro, mas notei um problema. Se nenhum textInput de cada canvas estiver preenchido com algo, qdo se clica no botão pra chamar a [color=green]function[/color] ele não faz nada. Ao preencher com um ponto que seja pelo menos um textInput de cada canvas a mágica acontece…rs… isso é um bug ou pode ser corrigido??

muito grato desde já pela atenção…

Bom dia Junior,

Por que o RemoteClass da primeira classe está comentado? Ele também está no lugar errado, teria que ficar em cima da declaração da classe.
Se isso não resolver, tem como você postar um stack trace do erro inteiro?

[]s

Olá Andre…

deixei comentado pois estava acusando erro e depois q vi q era por causa de estar no local errado… mas acabei esquecendo de tirar as // de todas as classes

mas arrumei isso e tentei e continuou o mesmo erro

Conforme pedido segue o log do erro

[BlazeDS][ERROR] Error processing remote invocation: java.lang.NullPointerException
incomingMessage: Flex Message (flex.messaging.messages.RemotingMessage)
operation = chamarInserir
clientId = 13272A8A-300B-B595-2FC4-4E4436E29F0A
destination = Controle
messageId = ECC36F4B-3382-4F07-ED64-7C2BE3CA8C96
timestamp = 1256213701936
timeToLive = 0
body = null
hdr(DSId) = 132729A7-230F-600C-7A2E-DA24FF4A40C4
hdr(DSEndpoint) = my-amf
java.lang.NullPointerException
at br.com.pfc.DAO.DAOAluno.cadastrar(DAOAluno.java:18)
at br.com.pfc.controle.Controle.chamarInserir(Controle.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:421)
at flex.messaging.services.RemotingService.serviceMessage(RemotingService.java:183)
at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)
at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884)
at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:121)
at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:146)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:278)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:322)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

[BlazeDS][ERROR] Exception when invoking service ‘remoting-service’: flex.messaging.MessageException: java.lang.NullPointerException : null
incomingMessage: Flex Message (flex.messaging.messages.RemotingMessage)
operation = chamarInserir
clientId = 13272A8A-300B-B595-2FC4-4E4436E29F0A
destination = Controle
messageId = ECC36F4B-3382-4F07-ED64-7C2BE3CA8C96
timestamp = 1256213701936
timeToLive = 0
body = null
hdr(DSId) = 132729A7-230F-600C-7A2E-DA24FF4A40C4
hdr(DSEndpoint) = my-amf
Exception: flex.messaging.MessageException: java.lang.NullPointerException : null
at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:447)
at flex.messaging.services.RemotingService.serviceMessage(RemotingService.java:183)
at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)
at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884)
at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:121)
at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:146)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:278)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:322)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at br.com.pfc.DAO.DAOAluno.cadastrar(DAOAluno.java:18)
at br.com.pfc.controle.Controle.chamarInserir(Controle.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:421)
… 23 more

valeu a força amigo…
abraço

O erro num tá no Cast, dá uma lida no StackTrace.
java.lang.NullPointerException
at br.com.pfc.DAO.DAOAluno.cadastrar(DAOAluno.java:18)

Num tá faltando um : ‘connection = Conexao.conectar();’ dentro do método cadastrar?

Cara, pra ser sincero nem estava olhando o DAO… rs… estava mais invocado na linha 19 do controle… esse showmessage estah vindo vazio… naum apresenta o q setei na view…

no mxml dou um alert e peço pra mostrar o q o alu.getNome() mostra… aparece o q cadastrei no textInput… mas no Java, qdo uso showMessageDialog (null,alu.getNome()) vem vazio

Andre, tirei as chamadas da classe DAO e aparece o seguinte erro no fault do mx:RemoteObject

(mx.messaging.messages::AcknowledgeMessageExt)#0
  body = (null)
  clientId = "16181A85-060E-29A9-C9FB-8B50DED1C8B4"
  correlationId = "29541CAE-88C3-54A4-0E98-7D604B02AD20"
  destination = ""
  headers = (Object)#1
  messageId = "16191C3B-250D-9ACD-AE64-5A38C3332653"
  timestamp = 1256233940469
  timeToLive = 0

Com a mensagem null vai ser meio dificil de saber, hehehe. Tente debugar pra ver se a chamada, pelo menos, chega no Flex. Se não chegar, tente outro método que não receba parametros. Se mesmo assim não rolar, verifique se configurou o BlazeDS corretamente.

[]s

Cara, não sei se tem a ver mas resolvi de outra maneira

Fiz o teste e alem de passar o parametro com o casting, passei como parametro um objeto de aluno msm… ao fazer a msm coisa no controller do java ele continuou mostrando vazio…

percebi então que o problema não era o casting … então comecei a mudar minha linha na procura do erro…

depois de alguns teste percebi um problema… os atributos marcado como Protected ou private nas classes AS q estavam dando problema… quando passei os msm para publico, funcionou normal…

sabe se tem alguma coisa a ver??

mas muito grato msm pela força, Andre…

Abraço.

Realmente Junior, não tinha visto isso. O Flex não vai serializar a classe direito se for private ou protected. No Flex, ou você usa o public para expor a propriedade ou faz ela como private e com o get e set public (dá uma pesquisada sobre isso, o get e set é meio diferente do que no Java). Agora, se você não quer que uma propriedade seja serializada, use a metatag [Transient] em cima dela.

[]s

Perfeito, funcionou com uma luva…rs…

Pior andre, jah havia visto o lance do set e get do AS q eh diferente no java mas nem me toquei quanto a isso…

Cara, muitissimo obrigado msm… achei uma outra ajuda sua sobre validação de campos (http://www.guj.com.br/posts/list/139975.java) q me será muito util tbm…

Rafael Nunes, muito grato tbm… realmente como jah havia feito passagem de objeto do flex para o java sem usar casting e havia dado certo e quando tento um outro exemplo usando casting e naum funcionava deduzi q o problema era ali msm… 5 dias martelando no mesmo “erro” q naum era erro nada…

Muito grato, gente.

Caso Resolvido.