users@grizzly.java.net

BayeuxCometHandler not to be casted to CometHandler?

From: Marc Bächinger <baechinger_at_gmail.com>
Date: Thu, 22 Jan 2009 12:51:38 +0100

Hi

I'm currently developing an application for which I would like to use the
Bayeux protocol of Grizzly/Glassfish. I have the chat application of Carol
McDonald working. So I can write message from one browser to the
CometdDervlet which broadcast it to the other clients subscribed to that
channel.

Based on this I tried to implement my own CometdServlet for which I just
copied the code out of the Glassfishh source code repository to start with.
To my surprise the server throws an ClassCastException when the servlet is
called:

java.lang.ClassCastException: com.sun.grizzly.cometd.BayeuxCometHandler
cannot be cast to
com.sun.enterprise.web.connector.grizzly.comet.CometHandler
at
com.sun.enterprise.web.connector.grizzly.comet.CometContext.getCometHandler(CometContext.java:95)
at
com.sun.enterprise.web.connector.grizzly.comet.CometContext.notify(CometContext.java:150)
at com.sun.grizzly.cometd.EventRouterImpl.route(EventRouterImpl.java:98)
[...]

That puzzles my because I checked out the BayeuxCometHandler source. It
extends the BayeuxBaseHandler (or similar) which does implement the
CometHandler interface. So I do not understand why there is a
ClassCasrtException.

Did someone of you guys have similar problems? Do I have a library mismatch?

I'm using Glassfish V3 prelude. In the IDE I added the grizzly-optionals.jar
linrary to make it compile.

Any ideas?

many thanks
marc