Thanks, Don. It works like a charm after I include below line in html.
<script src="/_ah/channel/jsapi/dev-channel-js.js"></script>

On Jul 26, 11:03 pm, Don Schwarz <schwa...@google.com> wrote:
> Yes, this feature isn't launched in the production server yet.
>
> You can try it out in the 1.3.5 DevAppServer, but it requires a slightly
> workaround:
>
> Extract the "apphosting/tools/dev-channel-js.js" file from
> appengine-api-1.0-sdk-1.3.5.jar and move it to /_ah/channel/jsapi in your
> war directory (as if it were a static file).
>
> Your HTML should then use <script src="/_ah/channel/jsapi">.  You should not
> referencehttp://talkgadget.google.com/talkgadget/channel.jsdirectly.  That
> path will never work in the DevAppServer.  The dance-dance-robot sample will
> be updated when 1.3.6 is launched and this works in the DevAppServer without
> the above workaround.
>
> On Mon, Jul 19, 2010 at 10:13 PM, GoSharp Lite <gosharpl...@gmail.com>wrote:
>
> > I have the same error using dev server.
>
> > If you deploy your app to production server, below error log shows
> > channel service is not enable.
>
> > exception: com.google.apphosting.api.ApiProxy
> > $FeatureNotEnabledException: The channel service is not enabled.
>
> > It seems we have to patiently wait:)
>
> > On Jul 20, 10:36 am, Daniel Guermeur <superco...@gmail.com> wrote:
> > > Thanks for the tip about channel.js. This is what I needed.
>
> > > Now I get an error when pushing a message to a client. I get this:
>
> > > com.google.appengine.api.channel.ChannelFailureException: An
> > > unexpected error occurred.
> > > Caused by: com.google.apphosting.api.ApiProxy$ApplicationException:
> > > ApplicationError: 2:
>
> > > Here is the stack trace. Let me know of any ideas you might have.
>
> > > Thanks!
> > > Daniel
>
> > > SEVERE: Failed to push the message
> > > com.metadot.book.stalkrapp.shared.mess...@1010a3b to client channel-
> > > a4kt0t-stalkrappt...@example.com-1
> > > com.google.appengine.api.channel.ChannelFailureException: An
> > > unexpected error occurred.
> > >         at
>
> > com.google.appengine.api.channel.ChannelServiceImpl.sendMessage(ChannelServiceImpl.java:
> > > 59)
> > >         at
>
> > com.metadot.book.stalkrapp.server.PushServer.sendMessageToOneUser(PushServer.java:
> > > 82)
> > >         at
>
> > com.metadot.book.stalkrapp.server.FriendsServiceImpl.getFriend(FriendsServiceImpl.java:
> > > 283)
> > >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > >         at
>
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> > > 39)
> > >         at
>
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> > > 25)
> > >         at java.lang.reflect.Method.invoke(Method.java:597)
> > >         at
>
> > com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:
> > > 100)
> > >         at
> > > com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
> > > 562)
> > >         at
>
> > com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:
> > > 188)
> > >         at
>
> > com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:
> > > 224)
> > >         at
>
> > com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:
> > > 62)
> > >         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:
> > > 511)
> > >         at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1166)
> > >         at
>
> > com.metadot.book.stalkrapp.server.servlets.LoginFilter.doFilter(LoginFilter.java:
> > > 31)
> > >         at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1157)
> > >         at
>
> > com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
> > > 51)
> > >         at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1157)
> > >         at
>
> > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
> > > 43)
> > >         at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1157)
> > >         at
>
> > com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:
> > > 122)
> > >         at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1157)
> > >         at
> > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
> > > 388)
> > >         at
> > > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
> > > 216)
> > >         at
> > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
> > > 182)
> > >         at
> > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
> > > 765)
> > >         at
> > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> > > 418)
> > >         at
>
> > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
> > > 70)
> > >         at
> > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> > > 152)
> > >         at com.google.appengine.tools.development.JettyContainerService
> > > $ApiProxyHandler.handle(JettyContainerService.java:349)
> > >         at
> > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> > > 152)
> > >         at org.mortbay.jetty.Server.handle(Server.java:326)
> > >         at
> > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> > > 542)
> > >         at org.mortbay.jetty.HttpConnection
> > > $RequestHandler.content(HttpConnection.java:938)
> > >         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
> > >         at
> > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
> > >         at
> > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> > >         at
> > > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
> > > 409)
> > >         at org.mortbay.thread.QueuedThreadPool
> > > $PoolThread.run(QueuedThreadPool.java:582)
> > > Caused by: com.google.apphosting.api.ApiProxy$ApplicationException:
> > > ApplicationError: 2:
> > >         at
>
> > com.google.appengine.api.channel.dev.LocalChannelService.sendChannelMessage(LocalChannelService.java:
> > > 91)
> > >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > >         at
>
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> > > 39)
> > >         at
>
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> > > 25)
> > >         at java.lang.reflect.Method.invoke(Method.java:597)
> > >         at com.google.appengine.tools.development.ApiProxyLocalImpl
> > > $AsyncApiCall.call(ApiProxyLocalImpl.java:305)
> > >         at com.google.appengine.tools.development.ApiProxyLocalImpl
> > > $AsyncApiCall.call(ApiProxyLocalImpl.java:262)
> > >         at java.util.concurrent.Executors$PrivilegedCallable
> > > $1.run(Executors.java:463)
> > >         at java.security.AccessController.doPrivileged(Native Method)
> > >         at java.util.concurrent.Executors
> > > $PrivilegedCallable.call(Executors.java:460)
> > >         at
> > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> > >         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> > >         at java.util.concurrent.ThreadPoolExecutor
> > > $Worker.runTask(ThreadPoolExecutor.java:886)
> > >         at java.util.concurrent.ThreadPoolExecutor
> > > $Worker.run(ThreadPoolExecutor.java:908)
> > >         at java.lang.Thread.run(Thread.java:637)
>
> > --
> > 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-j...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@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-j...@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.

Reply via email to