Well... i've tried simplyfing the channelId, but that didn't solve the problem So we migrated to version 1.5.0. As a result we now do not get the "application key is null..." exception, but instead we get another exception when creating the channel:
> [ERROR] 2011-06-16 15:05:01.426:WARN::/_ah/channel/dev > [ERROR] java.lang.ClassCastException: > com.google.appengine.tools.development.ApiProxyLocalImpl cannot be cast to > com.google.appengine.tools.development.ApiProxyLocal > [ERROR] at > com.google.appengine.api.channel.dev.LocalChannelServlet.getLocalChannelService(LocalChannelServlet.java:81) > [ERROR] at > com.google.appengine.api.channel.dev.LocalChannelServlet.doGet(LocalChannelServlet.java:89) > [ERROR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) > [ERROR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > [ERROR] at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) > [ERROR] at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) > [ERROR] at > com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:66) > [ERROR] at > com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) > [ERROR] at > com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) > [ERROR] at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > [ERROR] at > com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35) > [ERROR] at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > [ERROR] at > com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58) > [ERROR] at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > [ERROR] at > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) > [ERROR] at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > [ERROR] at > com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) > [ERROR] at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > [ERROR] at > com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:94) > [ERROR] at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > [ERROR] at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) > [ERROR] at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > [ERROR] at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > [ERROR] at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > [ERROR] at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) > [ERROR] at > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) > [ERROR] at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > [ERROR] at > com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351) > [ERROR] at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > [ERROR] at org.mortbay.jetty.Server.handle(Server.java:326) > [ERROR] at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) > [ERROR] at > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) > [ERROR] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) > [ERROR] at > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > [ERROR] at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > [ERROR] at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > [ERROR] at > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) However running gwt-gae-channel sample project works. One difference we have noticed is that our token looks different than the gwt-gae-channel sample project token. Example of our token: channel--j5okj1-test gwt-gae-channel token: channel-j5okj1-test As you see our token has one hyphen more. Any ideas? Thanks, Z On Wed, Jun 15, 2011 at 9:15 PM, Zerot Samsa <zerotsa...@gmail.com> wrote: > Thanks for the quick reply. > At least now I get what's happening under the hood ;) > I will try to simplify the client id and will inform you about the result. > > We are using SDK 1.4.2 > Do you think that might be the problem? > If so, we will try to migrate to 1.5. > > Thanks so far. > I will post the result of simplyfing the client when I get to do it. > > > > On Wed, Jun 15, 2011 at 8:09 PM, Moishe <mois...@google.com> wrote: > >> First, what version of the SDK are you using? It looks like you're >> using something before 1.5.0 (based on the text of the error message) >> -- can you try with 1.5.0? >> >> Basically the logic that's happening here is: >> >> - the application calls create channel >> - the dev appserver gins up a token consisting of a random string >> plus the application-provided client id >> - the dev appserver adds this token to a hashmap of token -> clientid >> - the dev appserver returns the token >> >> Later, when the client connects, this happens: >> >> - the client makes a post to /_ah/channel/dev? >> command=connect&channel={{token}} >> - the dev appserver intercepts this request and looks up the >> "channel" query param in the hashmap of token -> clientid >> >> What seems to be happening in your case is that the dev appserver >> can't extract the "channel" query param based on the "application key >> is null" error. All I can think of is that there's something in the >> token that's preventing the query params from being parsed correctly. >> As a test, can you try simplifying your client id? (I can't read the >> whole thing because Groups thinks it's an email address and elides it) >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine for Java" group. >> To post to this group, send email to >> google-appengine-java@googlegroups.com. >> To unsubscribe from this group, send email to >> google-appengine-java+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/google-appengine-java?hl=en. >> >> > -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.