Wonderful! It seems multiple channels can be created with channel API.
Wish we can try it on production server.

On Jul 27, 11:14 pm, Don Schwarz <schwa...@google.com> wrote:
> Sorry, to be clear, I meant that you should create an /_ah/channel directory
> at the top of your war and copy dev-channel-js.js so it is a file named
> 'jsapi' in that /_ah/channel directory.  This is the path that will work
> automatically in the 1.3.6 DevAppServer and in prod when this feature
> launches publicly.
>
> If you name the script something else (as you've done), that will work fine
> for now but you'll need to remember to adjust the path later.
>
> On Mon, Jul 26, 2010 at 9:47 PM, GoSharp Lite <gosharpl...@gmail.com> wrote:
> > 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>
> > <google-appengine-java%2bunsubscr...@googlegroups.com<google-appengine-java%252bunsubscr...@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<google-appengine-java%2bunsubscr...@googlegroups.com>
> > .
> > For more options, visit this group at
>
> ...
>
> read more »

-- 
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