I believe anything implementing java.util.Collection, such as List, is already being converted to an ArrayCollection on the Flex side.
http://livedocs.macromedia.com/flex/2/docs/00001104.html#270405 <http://livedocs.macromedia.com/flex/2/docs/00001104.html#270405> In your result handler, try: var col:ArrayCollection = re.result as ArrayCollection; --- In [email protected], "ytseshred" <[EMAIL PROTECTED]> wrote: > > 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; > } >

