Your onFailure method ignores the Throwable it's given. Maybe it
contains something useful?

Ouaibou wrote:
> 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 Google-Web-Toolkit@googlegroups.com
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to