Hello, I have a problem with the callback of a RPC call. I have post in appengine forum because i think it was a problem with the appengine datastore, but Max Ross suggests me to post here :
http://groups.google.com/group/google-appengine-java/browse_thread/thread/75803bf6ae4eaeb7 In order to summarize : I have two classes AudioFile and Genre. AudioFile as a field of type Genre. Both are marked as detachable like Max says me. I add an AudioFile in the datastore and then i do a RPC call in the client side in order to retrieve the data : this.gtunesService.getAudioFiles(new AsyncCallback<List<AudioFile>>() { public void onFailure(Throwable caught) { SC.say(Gtunes.SERVER_ERROR); } public void onSuccess(List<AudioFile> result) { Gtunes.this.audioFiles = result; String buf = ""; for (AudioFile af : Gtunes.this.audioFiles) { buf += "genre = " + af.getGenre ().getName() + " - " + af.getName() + "<br />"; } SC.say(buf); } }); The problem is in the server side with the following code : public List<AudioFile> getAudioFiles() { List<AudioFile> audioFiles = null; PersistenceManager pm = PMF.get().getPersistenceManager(); try { Query q = pm.newQuery(AudioFile.class); q.setOrdering("name"); audioFiles = new ArrayList<AudioFile>((List<AudioFile>) q.execute ()); pm.detachCopyAll(audioFiles); } finally { pm.close(); } System.out.println("list = " + audioFiles); for (AudioFile audioFile : audioFiles) { System.out.println("name = " + audioFile.getName() + "\n"); } return audioFiles; } audioFiles contains my data. But the return has a problem because i enter in the onFailure in the client side but without any error. However, i see that if i change the line : audioFiles = new ArrayList<AudioFile>((List<AudioFile>) q.execute()); for : audioFiles = (List<AudioFile>) q.execute(); I have get the following error : 5 mai 2009 22:23:23 com.google.appengine.tools.development.ApiProxyLocalImpl log SEVERE: [1241555003875000] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.client.rpc.SerializationException: Type 'org.datanucleus.store.appengine.query.StreamingQueryResult' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized. at com.google.gwt.user.server.rpc.impl.StandardSerializationPolicy.validateSer ialize (StandardSerializationPolicy.java:83) at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali ze (ServerSerializationStreamWriter.java:591) at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.write Object (AbstractSerializationStreamWriter.java:129) at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter $ValueWriter$8.write(ServerSerializationStreamWriter.java:146) at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali zeValue (ServerSerializationStreamWriter.java:530) at com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java: 573) at com.google.gwt.user.server.rpc.RPC.encodeResponseForSuccess (RPC.java:441) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse (RPC.java:529) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall (RemoteServiceServlet.java:166) at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost (RemoteServiceServlet.java:86) at javax.servlet.http.HttpServlet.service(HttpServlet.java: 713) at javax.servlet.http.HttpServlet.service(HttpServlet.java: 806) at org.mortbay.jetty.servlet.ServletHolder.handle (ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter (ServletHandler.java:1093) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter (ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle (WebAppContext.java: 405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService $ApiProxyHandler.handle(JettyContainerService.java:306) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest (HttpConnection.java: 506) at org.mortbay.jetty.HttpConnection$RequestHandler.content (HttpConnection.java:844) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java: 644) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java: 211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java: 381) at org.mortbay.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run (BoundedThreadPool.java:442) I don't know where to see in order to debug. Does someone has an idea ? Thanks. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
