Galera seguinte, como bom escravo, meu chefe solicitou uma aplicacao em flex, so que nao tenho a manha desse bicho ainda não!!!
Esta dando o seguinte erro a minha aplicao:
TypeError: Error #1034: Type Coercion failed: cannot convert mx.rpc::AsyncToken@61d17c1 to br.com.dto.Transmissao.
at Transmissao/teste()[E:\temp\flex\FlexJava\flex_src\Transmissao.mxml:28]
at Transmissao/__btIniciar_click()[E:\temp\flex\FlexJava\flex_src\Transmissao.mxml:8]
O que pode ser esse erro. Pelo o que eu entendi ele nao esta conseguindo fazer o cast de objetos.
Abaixo os meus fontes que estou usando
Transmissao.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:dto="br.com.dto.*" layout="absolute">
<mx:Form x="157" y="10" width="280" height="186">
<mx:Label width="106" id="labellatitude"/>
<mx:Label text="longitude" width="73" id="labellongitude"/>
</mx:Form>
<mx:ControlBar horizontalAlign="right">
<mx:Button id="btIniciar" label="Iniciar" click="teste('20005710')" />
</mx:ControlBar>
<!-- Model -->
<dto:Transmissao id="transmissao" />
<mx:RemoteObject id="posicaoService" destination="posicaoService">
<mx:method name="buscarTransmissao" result="transmissao"/>
</mx:RemoteObject>
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
[Bindable]
public var isLogged:Boolean;
private function teste(serial:String):void{
Alert.show(serial);
transmissao = posicaoService.buscarTransmissao(serial);
Alert.show(transmissao.latitude);
}
private function faultHandler(event:FaultEvent):void{
labellatitude.text = transmissao.latitude;
Alert.show(event.fault.message);
}
]]>
</mx:Script>
</mx:Application>
package br.com.dto
{
[RemoteClass(alias="br.com.xml.Transmissao")]
public class Transmissao
{
public var latitude:String;
public var longitude:String;
public var direcao:String;
}
}
Transmissao.class
package br.com.xml;
public class Transmissao {
private String codVeiculo;
private String tipo;
private String dataTransmissao;
private String latitude;
private String longitude;
private String direcao;
private String velocidade;
private String ignicao;
private String excessoVelocidade;
private String gps;
private String gprs;
private String alert;
private String hodometro;
private String serial;
//GET's e SET's
}
PosicaoService.class
package br.com;
import java.net.URL;
import org.apache.axis.client.Service;
import br.com.portaltrack.webservice.PortalTrackBindingStub;
import br.com.portaltrack.xml.Transmissao;
import br.com.portaltrack.xml.Xml;
public class PosicaoService {
public Transmissao buscarTransmissao(String serial){
try {
URL url = new URL("Meu webservice");
Service service = new Service();
BindingStub stub = new BindingStub(url,service);
String s = stub.buscarPosicoes("20005710");
System.out.println(s);
Xml xml = new Xml();
return xml.lerXml(s);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
Outra coisa, estu usando XStream para ler o meu XML que vem no retorno do webservice. Quando rodo a aplicacao ele fala que nao achou os jar’s do Xstream. Estou usando o o ecplise com o plugin do flex. Apontei as libs necessarias para o meu projeto, inclusivel as do XSream, quando eu rodo a minha aplicacao com JUnit funciona mas quando chamo a aplicacao no navegador da erro que nao achou os jar’s do XStream.
Valeu mais uma vez galera
vcsmetallica