| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Feb 2010
Beiträge: 15
|
Hallo, ich bin neu hier im Forum, komme aber gleich mit einer Frage , bzw. ein Problem. Ich habe eine Flex Anwendung und eine Java Anwendung , die per BlazeDS Daten tauschen sollen. D.h. ich schiebe eigentlich die Beans nur von Java nach Flex. Das klappt auch gut bei einfachen Datentypen. Jetzt habe ich eine ArrayListe(java) , die nach FLex als ArrayCollection gehen soll. In der ArrayListe sind wiederum Arrays eines anaderen Typs. Also Bean und BeanListe. schicke ich eine Bean rüber, kann ich in Flex diese Bean auch als ArrayList<Bean> bearbeiten. Schicke ich aber BeanList rüber , komme ich in Flex nicht an die ArrayList<BeanListe> ran. Die Klassen sind sowohll in Flex und Java mit den gleichen Namen etc. angelegt. Mein RemotObject steck in einer manager.as Klasse und sieht wie folgt aus: Code: package de.techem.verbrauchsanalysen.manager {
import de.techem.verbrauchsanalysen.beans.AeBean;
import de.techem.verbrauchsanalysen.beans.AeListe;
import mx.controls.Alert;
import mx.messaging.Channel;
import mx.messaging.ChannelSet;
import mx.messaging.channels.AMFChannel;
import mx.rpc.AsyncResponder;
import mx.rpc.AsyncToken;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.InvokeEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.remoting.RemoteObject;
import mx.collections.ArrayCollection;
public class Manager {
private static var instance : Manager;
MessageBrokerServlet
MessageBrokerServlet and "amf" specifies
public const url:String = "http://localhost:8400/Verbrauchsanalysen_Blaze/messagebroker/amf"
public const name:String = "my-amf";
public const destination:String = "manager";
private var ro:RemoteObject;
public var aeListe:AeListe;
public var aeBean:AeBean;
// private var logTarget:FireBugTarget;
public static function getInstance() : Manager {
if ( instance == null ) {
instance = new Manager();
}
return instance;
}
public function Manager() {
if ( instance != null ){
throw new Error("Cant Instantiate Manager directly instead call " +
"Manager.getInstance() its safe to call it anytime/manytimes, :)" );
return;
}
// very simple way
var chanells:ChannelSet = new ChannelSet();
var simpleChannel:Channel = new AMFChannel(name,url);
chanells.addChannel(simpleChannel);
ro = new RemoteObject(destination);
ro.channelSet = chanells;
ro.addEventListener(ResultEvent.RESULT,resultHandler);
ro.addEventListener(FaultEvent.FAULT,flistener);
ro.addEventListener(InvokeEvent.INVOKE,Ilistener) ;
}
public function makeAeListe(resultReceiver:Function,
fault:Function=null): void {
var token:AsyncToken = ro.makeAeListe();
token.addResponder(new AsyncResponder(
function(data:Object, token:Object):void {
if(!data || !data.result) {
throw new Error("RO [TestName] result object was null, or missing ...");
return;
}
resultReceiver(data.result as AeListe);
},
// error function
function(info:Object, token:Object):void {
// if user sent us error function, lets invoke that too.
if(fault != null) fault(info);
},
token
));
}
// global listeners, we are not using them
private function resultHandler(e:ResultEvent) : void {
// var result:Object = (event as ResultEvent).result as Object ;
var aeliste:AeListe = (e as ResultEvent).result as AeListe ;
//var items:ArrayCollection = new ArrayCollection();
if (aeliste)
{
/** Update the Shopping Cart in the model */
//this.model.shoppingCart = ShoppingCartDTO(result);
Alert.show("wir haben ein Result" + e.result.toString());
// ---------------------------------
/** Array collection for all data */
// ---------------------------------
/** Intermediate array collection */
var items:ArrayCollection = new ArrayCollection();
for each(var aebean:AeBean in aeliste)
{
/** Add the current item to the intermediate array collection */
//items.addItem(aeliste(aebean));
Alert.show("aenr=" + aebean.getAenr().toString());
}
/** Update the Product array collection in the model */
//this.model.products = items
}
}
private function flistener(e:FaultEvent) : void {
// Log it to Firebug Target
}
private function Ilistener(e:InvokeEvent) : void {
// Log it to Firebug Target
}
}
} Gruß Nickleby Geändert von Omega Psi (03-02-2010 um 07:05 Uhr) |
| | |
| | #2 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.146
|
Kannst du die einzelnen Klassen mit einem Code-Tag umschliessen? [] - Klammern. Wo sind die Beans?
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Feb 2010
Beiträge: 15
|
Hallo hier sind die Beans : Flex AeBean und AeListe Code: package de.techem.verbrauchsanalysen.beans
{
[Bindable]
[RemoteClass(alias="de.techem.verbrauchsanalysen.beans.AeBean")]
public class AeBean
{
[Bindable]
public var kdnr:String;
public function getKdnr():String { return kdnr; }
public function setKdnr(value:String):void { kdnr = value; }
[Bindable]
public var plz:String;
public function getPlz():String { return plz; }
public function setPlz(value:String):void { plz = value; }
[Bindable]
public var aenr:String;
public function getAenr():String { return aenr; }
public function setAenr(value:String):void { aenr = value; }
[Bindable]
public var ort:String;
public function getOrt():String { return ort; }
public function setOrt(value:String):void { ort = value; }
[Bindable]
public var strasse:String;
public function getStrasse():String { return strasse; }
public function setStrasse(value:String):void { strasse = value; }
[Bindable]
public var anzNe:int;
public function getAnzNe():int { return anzNe; }
public function setAnzNe(value:int):void { anzNe = value; }
[Bindable]
public var beheizteFl:Number;
public function getBeheizteFl():Number { return beheizteFl; }
public function setBeheizteFl(value:Number):void { beheizteFl = value; }
[Bindable]
public var brennstoff:String;
public function getBrennstoff():String { return brennstoff; }
public function setBrennstoff(value:String):void { brennstoff = value; }
[Bindable]
public var gesamt_kwh:Number;
public function getGesamt_kwh():Number { return gesamt_kwh; }
public function setGesamt_kwh(value:Number):void { gesamt_kwh = value; }
[Bindable]
public var gesamt_hz:Number;
public function getGesamt_hz():Number { return gesamt_hz; }
public function setGesamt_hz(value:Number):void { gesamt_hz = value; }
[Bindable]
public var gesamt_ww:Number;
public function getGesamt_ww():Number { return gesamt_ww; }
public function setGesamt_ww(value:Number):void { gesamt_ww = value; }
...
...
...
}
} Code: package de.techem.verbrauchsanalysen.beans
{
import mx.collections.ArrayCollection;
[RemoteClass(alias="de.techem.verbrauchsanalysen.beans.AeListe")]
public class AeListe
{
public var aeListe:ArrayCollection ;
public function getAeListe():ArrayCollection { return aeListe; }
public function setAeListe(value:ArrayCollection):void { aeListe = value; }
}
} Hier die Java Bean Klassen : [ Code: package de.techem.verbrauchsanalysen.beans;
import java.util.Date;
public class AeBean {
private String kdnr= "";
private String aenr = "";
private String plz = "";
private String ort = "";
private String strasse = "";
private Integer anzNe = 0;
private Double beheizteFl = null;
private String brennstoff = "";
private Double gesamtkwh = null;
private Double gesamt_hz = null;
private Double gesamt_ww = null;
private Double gesamtkwh_vj = null;
private Double gesamt_hz_vj = null;
private Double gesamt_ww_vj = null;
private Double betrag_hz = null;
private Double betrag_ww = null;
private Double betrag_hz_vj = null;
private Double betrag_ww_vj = null;
private Float klimafaktor = null;
private Date abrbeginn = null;
private Date abrende = null;
public String getKdnr() {
return kdnr;
}
public void setKdnr(String kdnr) {
this.kdnr = kdnr;
}
public String getAenr() {
return aenr;
}
public void setAenr(String aenr) {
this.aenr = aenr;
}
public String getPlz() {
return plz;
}
public void setPlz(String plz) {
this.plz = plz;
}
public String getOrt() {
return ort;
}
public void setOrt(String ort) {
this.ort = ort;
}
public String getStrasse() {
return strasse;
}
public void setStrasse(String strasse) {
this.strasse = strasse;
}
public Integer getAnzNe() {
return anzNe;
}
public void setAnzNe(Integer anzNe) {
this.anzNe = anzNe;
}
public Double getBeheizteFl() {
return beheizteFl;
}
public void setBeheizteFl(Double beheizteFl) {
this.beheizteFl = beheizteFl;
}
public String getBrennstoff() {
return brennstoff;
}
public void setBrennstoff(String brennstoff) {
this.brennstoff = brennstoff;
}
public Double getGesamtkwh() {
return gesamtkwh;
}
public void setGesamtkwh(Double gesamtkwh) {
this.gesamtkwh = gesamtkwh;
}
public Double getGesamt_hz() {
return gesamt_hz;
}
public void setGesamt_hz(Double gesamtHz) {
gesamt_hz = gesamtHz;
}
public Double getGesamt_ww() {
return gesamt_ww;
}
public void setGesamt_ww(Double gesamtWw) {
gesamt_ww = gesamtWw;
}
public Double getBetrag_hz() {
return betrag_hz;
}
public void setBetrag_hz(Double betragHz) {
betrag_hz = betragHz;
}
public Double getBetrag_ww() {
return betrag_ww;
}
public void setBetrag_ww(Double betragWw) {
betrag_ww = betragWw;
}
public Float getKlimafaktor() {
return klimafaktor;
}
public void setKlimafaktor(Float klimafaktor) {
this.klimafaktor = klimafaktor;
}
public Date getAbrbeginn() {
return abrbeginn;
}
public void setAbrbeginn(Date abrbeginn) {
this.abrbeginn = abrbeginn;
}
public Date getAbrende() {
return abrende; Code: package de.techem.verbrauchsanalysen.beans;
import java.util.ArrayList;
import java.util.Collection;
import java.util.TreeMap;
public class AeListe {
private ArrayList<AeBean> aeliste;
public ArrayList<AeBean> getAeliste() {
return aeliste;
}
public void setAeliste(ArrayList<AeBean> aeliste) {
this.aeliste = aeliste;
}
} Gruß Nickleby Geändert von Omega Psi (03-02-2010 um 07:08 Uhr) |
| | |
| | #4 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.146
|
Die Eigenschaften der AeListe Klassen korrelieren nicht. Flex: Code: public var aeListe:ArrayCollection ;
public function getAeListe():ArrayCollection { return aeListe; }
public function setAeListe(value:ArrayCollection):void { aeListe = value; } Code: private ArrayList<AeBean> aeliste;
public ArrayList<AeBean> getAeliste() {
return aeliste;
}
public void setAeliste(ArrayList<AeBean> aeliste) {
this.aeliste = aeliste;
} Code: private var _name:String;
[Bindable("nameChanged")]
public function get name():String
{
return _name;
}
public function set name(value:String):void
{
if (_name == value)
{
return;
}
_name = value;
dispatchEvent(new Event("nameChanged"));
}
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #5 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.146
|
Nachtrag: die get/set Funktionen werden in deinem Code nicht aufgerufen. Deine DTOs sind im Grunde genommen das: Code: package de.techem.verbrauchsanalysen.beans
{
[Bindable]
[RemoteClass(alias="de.techem.verbrauchsanalysen.beans.AeBean")]
public class AeBean
{
public var kdnr:String;
public var plz:String;
public var aenr:String;
public var ort:String;
public var strasse:String;
public var anzNe:int;
public var beheizteFl:Number;
public var brennstoff:String;
public var gesamt_kwh:Number;
public var gesamt_hz:Number;
public var gesamt_ww:Number;
}
}
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Feb 2010
Beiträge: 15
|
Hallo Omega Psi, ich habe den Tippfehler gefunden.[RemoteClass(alias="de.techem.verbrauchsanalysen.be ans.AeListe")] Ein fehlendes "e" am Ende war die Ursache. Die Tipps mit den _ in den variablen habe ich befolgt. Danke noch mal für deine Hilfe. Gruß Nickleby |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Gameserver mit Java und AS3 Sockets + Flex | JTM | ActionScript 3 | 5 | 09-11-2009 17:36 |
| Adobe Flex User Group Hamburg: Flex und BlazeDS | marc | Konferenzen und Treffen | 6 | 04-02-2009 08:42 |
| HTTP Service ArrayCollection problem | Zwercknase | Flex programmieren | 2 | 05-09-2008 21:02 |
| Flex, Java | nekro25 | Flash Einsteiger | 1 | 13-03-2008 14:36 |
| Webservices - Login - Flex/Java | Chris1977 | Flex programmieren | 0 | 18-06-2007 09:51 |