Boas, estou com um problema na comunicação cliente servidor.
Eu estou a fazer um pequeno teste de adicionar um user(nome, pass) numa bd mysql.
A estrutura é
Cliente está em AIR
Servidor JPA
Tomcat 6
Blazeds
Hibernate
Framework Mate
O problema é o seguinte:
Quando envio um user para o servidor, quando lá chega os valores estão a null, sendo assim adiciona a bd com os campos a null.
Penso que tenho tudo direitinho, mas esse problema está a dar cabo de mim…porque já vi o codigo todo de uma ponta a outra e não encontro problemas…
<vos:userid="user"Nome="{nome.text}"Pass="{pass.text}"/><mx:Script><![CDATA[importmx.rpc.Fault;importcom.adobe.Events.userEvent;importcom.adobe.Vos.user;publicfunctionAdiciona():void{if(user.Nome==null||user.Pass==null){resultado("nulos a saida");}else{varevent:userEvent=newuserEvent(userEvent.SAVE,true);event.users=user;resultado(event.users.Nome+", "+user.Pass);dispatchEvent(event);}}publicfunctionresultado(ev:String):void{resul.text=ev;}publicfunctionfalha(ec:Fault):void{resul.text=ec.faultDetail.toString();resul.text+=ec.faultCode.toString();resul.text+=ec.faultString;resul.text+=ec.getStackTrace();}]]></mx:Script><mx:Formwidth="328"height="294"x="13"y="10"><mx:FormItemlabel="Nome"required="true"><mx:TextInputid="nome"text="{user.Nome}"y="50"x="110"/></mx:FormItem><mx:FormItemlabel="Pass"required="true"><mx:TextInputid="pass"text="{user.Pass}"y="106"x="110"/></mx:FormItem><mx:TextAreaid="resul"x="0"y="166"width="282"height="164"/><mx:Buttonlabel="Ok"click="Adiciona()"/></mx:Form>
Desculpa fazer confusão,mas a class é user em minusculo.
Dá para ver no código.
Mas mesmo assim fiz a alteração,e o servidor deixou de responder.
Obrigado…
AUser
No código tá “User” , não User.
E deve ter o mesmo nome.
[]'s
R
ragecruz
Não, os nomes estão direitinhos…
Eu se passar uma string do cliente para o servidor não tenho problema, agora se for um objecto(user) ai os parametros no servidor ficam a null.
Obrigado
AUser
Justamente. Os tipos String já estão mapeados. Agora caso você passe objetos que não estão mapeados, ele vai chegar Null. É normal e até certo isso.
O que estou te dizendo é que a classe USER no lado Java está como User, e o mapping está feito para “user”. Isso de acordo com o código que você postou.
R
ragecruz
Não,eu é que no inicio coloquei “class User”, mas não é com “U” pois pode ver que diz:
public class user{
e
public user
está tudo em minusculas
Obgd
H
henrique.marino
Oi,
Não querendo ser chato mais já sendo :), usamos como padrão nome de Classe começando com maiúscula e propriedades como minúscula…
Só para esclarecer, o que chega no server null? Todas as propriedades? O que consegui ver é que a prop userId não está declarada na classe AS.
Outra coisa, declare no início da sua aplicação <mx:TraceTarget /> e da um debug. Pegue a chamada para o server e veja se o usuário esta sendo passado…
[]s,
AUser
A classe no AS deve ser um espelho do POJO java. Mas pra evitar sustos, coloque o atributo “dynamic” antes do class. assim sendo, coloque também “public dynamic class” ao invés de “public class”.