Expand my Community achievements bar.

Trouble Converting java List to ArrayCollection

Avatar

Level 1
I'm using RemoteObjects to connect to my backend. In one of
my calls

I'm trying to return a List of VO's I create after hitting my
database.



On the Flex side, my result event is firing properly, but
when I try

to convert the result to an ArrayCollection, instead of
getting a

proper ArrayCollection I get single element that displays the

following when I output it in an alert: "obj is: '[object
TestVO],

[object TestVO], ... [object TestVO]'".



If I return a single TestVO object directly instead of a
List, I can

properly cast the result to my ActionScript TestVO object and
view the

data properly. It's just returning the List that's giving me
problems.



Can anyone offer any suggestions please?



My Flex result code is:



public function result(evt:Object):void {

if(evt.type && evt.type == ResultEvent.RESULT) {

var re:ResultEvent = evt as ResultEvent;

var col:ArrayCollection = new

ArrayCollection(ArrayUtil.toArray(re.result));

if(col) {

Alert.show("obj is: '" + col.getItemAt(0) + "'");

}

else Alert.show("Didn't cast properly!");

}

}



My Java DAO code that returns the list is:



public List getList() throws DAOException {

List list = new ArrayList();

Connection c = null;



try {

c = ConnectionHelper.getConnection();

Statement s = c.createStatement();

ResultSet rs = s.executeQuery("SELECT * FROM test");

while(rs.next()) {

TestVO vo = new TestVO();

vo.id = rs.getInt("id");

vo.data = rs.getString("data");

list.add(vo);

}

} catch(Exception e) {

e.printStackTrace();

throw new DAOException(e);

} finally {

ConnectionHelper.close(c);

}

return list;

}
1 Reply

Avatar

Level 1
It looks to me like you may be trying to access your list in
the result object a touch too high...

It looks like the list is getting transferred to the client
and recognized as TestVO objects on the client (that's good).



When you access 'col.getItemAt(0)' it looks from the Alert
that this is a reference to the entire List... not the first
element in the List...



Have you tried running in debug mode and putting just after
you assign 'col' and seeing what structure you are actually
getting?