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 <[email protected]> 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 <[email protected]> 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 <[email protected]
> >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 <[email protected]> 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-
> > > > [email protected]
> > > > 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
> > > [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<google-appengine-java%[email protected]>
> <google-appengine-java%[email protected]<google-appengine-java%[email protected]>
> >
> > > .
> > > 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
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine-java%[email protected]>
> .
> 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 [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-appengine-java?hl=en.

Reply via email to