Hi, I imagine that at this time you solved your problem, but i found your post.
I had the same problem with a simple app. The problem is that the app doesn't know your VO (Value Object) and for that reason flash player marks "ClassCastException"; for solving you have to declare a var with your VO at your flex app: <mx:Script> private var item:Item; </mx:Script> That's all. Greetings, Manuel G. --- In flexcoders@yahoogroups.com, "mcantrell138" <mcantrell...@...> wrote: > > I'm trying out the data management service. I've developed a very > simple example but I'm having a problem with the data types. When I > change the data, my updateItem method is being called but I cannot > cast them to their proper data types. I get the following error: > > > [RPC Fault faultString="Could not invoke sync method on data adapter > for destination 'wishlist' due to the following error: class > java.lang.ClassCastException:flex.messaging.io.amf.ASObject." > faultCode="Server.Processing" faultDetail="null"] > at > mx.data::ConcreteDataService/http://www.adobe.com/2006/flex/mx/internal::dispatchFaultEvent()[C:\dev\enterprise_gmc\frameworks\mx\data\ConcreteDataService.as:1602] > at > mx.data::CommitResponder/fault()[C:\dev\enterprise_gmc\frameworks\mx\data\CommitResponder.as:167] > at > mx.rpc::AsyncRequest/fault()[C:\dev\enterprise_gmc\frameworks\mx\rpc\AsyncRequest.as:107] > at > NetConnectionChannel.as$37::NetConnectionMessageResponder/NetConnectionChannel.as$37:NetConnectionMessageResponder::statusHandler()[C:\dev\enterprise_gmc\frameworks\mx\messaging\channels\NetConnectionChannel.as:458] > at > mx.messaging::MessageResponder/status()[C:\dev\enterprise_gmc\frameworks\mx\messaging\MessageResponder.as:225] > > > Perhaps I've missed a step or I have cocnfiguration problems. I'll > post some code below. Please let me know if you can spot any problems. > > > data-management-config.xml: > =========================================================== > <?xml version="1.0" encoding="UTF-8"?> > <service id = "data-service" > class = "flex.data.DataService" > messageTypes = "flex.data.messages.DataMessage"> > > <adapters> > <adapter-definition id = "actionscript" class = > "flex.data.adapters.ASObjectAdapter" default = "true" /> > <adapter-definition id = "java-dao" class = > "flex.data.adapters.JavaAdapter" /> > </adapters> > > <default-channels> > <channel ref = "my-rtmp" /> > </default-channels> > > <destination id = "wishlist"> > <adapter ref = "java-dao" /> > <properties> > <source>com.test.flex.assemblers.WishListAssembler</source> > <scope>application</scope> > <cache-items>true</cache-items> > <metadata> > <identity property = "id" /> > </metadata> > <network> > <session-timeout>20</session-timeout> > <paging enabled = "true" pageSize = "10" /> > <throttle-inbound policy = "ERROR" max-frequency = "500" /> > <throttle-outbound policy = "REPLACE" max-frequency = "500" /> > </network> > </properties> > </destination> > </service> > > > > Assembler: > =========================================================== > package com.test.flex.assemblers; > > import com.test.flex.util.SpringUtils; > import com.test.wishlist.data.model.Item; > import com.test.wishlist.data.service.ItemService; > import com.test.wishlist.ws.StoreIndex; > import flex.data.assemblers.AbstractAssembler; > import org.apache.commons.logging.Log; > import org.apache.commons.logging.LogFactory; > import java.util.List; > > public class WishListAssembler extends AbstractAssembler { > > private static Log log = LogFactory.getLog(WishListAssembler.class); > ItemService itemService > > public WishListAssembler() { > super(); > this.itemService = (ItemService) SpringUtils.getBean("itemService"); > } > > @Override > public List<Item> fill(List list) { > List<Item> results = itemService.findByKeywordsAndStore("j2ee", > StoreIndex.BOOKS); > return results; > } > > @Override > public void updateItem(Object currentObject, Object previousObject, > List changes) { > Item current = (Item)currentObject; > Item previous = (Item)previousObject; > if (log.isDebugEnabled()) { > log.debug("new object: " + current); > log.debug("previous object: " + previous); > log.debug("changes: " + changes); > } > } > > } > > > AS model object: > =========================================================== > package com.test.wishlist.model { > import com.test.common.model.GenericEntity; > > [Managed] > [RemoteClass(alias="com.test.wishlist.data.model.Item")] > public class Item extends GenericEntity { > public var price:Number; > public var name:String; > public var url:String; > } > } > > > MXML init method: > =========================================================== > [Bindable] > public var items:ArrayCollection; > > public function initApp():void { > items = new ArrayCollection(); > wishListDs = new DataService("wishlist"); > wishListDs.fill(items); > } >