[jetty-user] Re: ClassCastException...Jetty6Continuation when hot deploying
Sean Rhea <[email protected]> Wed, 4 May 2011 14:29:03 -0700
| Newsgroups | gmane.comp.java.jetty.support |
|---|---|
| Message-ID | <[email protected]> |
Wow. Crickets. Is this mailing list dead? Sean On Wed, Apr 20, 2011 at 10:42 AM, Sean Rhea <[email protected]> wrote: > Hello, > > I'm using jetty 6.1.22 with cometd-java-server-2.1.0 and > jetty-continuation-7.3.0.v20110203. I hot deploy my app using a > WebAppContext, but when I touch the context file, the next attempt by > a cometd client causes this error: > > java.lang.ClassCastException: org.eclipse.jetty.continuation.Jetty6Continuation > at org.eclipse.jetty.continuation.ContinuationFilter.doFilter(ContinuationFilter.java:76) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > ... > (full stack trace below) > > Line 76 of ContinuationFilter.java is trying to cast the continuation > to type Continuation, which Jetty6Continuation inherits, so it should > work. I suspect the problem is with the class loader, in that the > Jetty6Continuation object in hand is from the class loader used before > the restart, whereas the Continuation interface being used is the one > from after the restart. If that were the case, then in fact the > exception is the expected behavior. To try and fix it, I added > > <Set name="systemClasses"> > <Array type="java.lang.String"> > <Item>org.eclipse.jetty.</Item> > ... > </Array> > </Set> > > to my context.xml, so that the Continuation interface and > Jetty6Continuation class would be loaded by the system class loader, > but that doesn't seem to have helped--I still get the exception. > > Has anyone else seen this? Any ideas? The full text of my web > context is below. > > Thanks, > Sean > > nmr.xml (my web context): > > <?xml version="1.0" encoding="ISO-8859-1"?> > <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" > "http://jetty.mortbay.org/configure.dtd"> > <Configure class="org.mortbay.jetty.webapp.WebAppContext"> > <Set name="contextPath">/</Set> > <Set name="war"><SystemProperty name="jetty.home" > default="."/>/webapps/nmr</Set> > <!-- <Set name="extractWAR">true</Set> --> > <Get name="errorHandler"> > <Call name="setShowStacks"> > <Arg type="boolean">false</Arg> > </Call> > </Get> > <Set name="copyWebDir">true</Set> > <Set name="systemClasses"> > <Array type="java.lang.String"> > <Item>java.</Item> > <Item>javax.</Item> > <Item>org.eclipse.jetty.</Item> > <Item>org.mortbay.</Item> > <Item>org.xml.</Item> > <Item>org.w3c.</Item> > <Item>org.srhea.scalaqlite.</Item> > <Item>scala.</Item> > </Array> > </Set> > </Configure> > > web.xml: > > <web-app> > <servlet> > <servlet-name>cometd</servlet-name> > <servlet-class>org.cometd.server.CometdServlet</servlet-class> > <load-on-startup>1</load-on-startup> > <init-param> > <param-name>timeout</param-name> > <param-value>60000</param-value> > </init-param> > <init-param> > <param-name>logLevel</param-name> > <param-value>3</param-value> > </init-param> > </servlet> > <servlet-mapping> > <servlet-name>cometd</servlet-name> > <url-pattern>/cometd/*</url-pattern> > </servlet-mapping> > > <servlet> > <servlet-name>initializer</servlet-name> > <servlet-class>BayeuxInitializer</servlet-class> > <load-on-startup>3</load-on-startup> > </servlet> > > <filter> > <filter-name>continuation</filter-name> > <filter-class>org.eclipse.jetty.continuation.ContinuationFilter</filter-class> > </filter> > <filter-mapping> > <filter-name>continuation</filter-name> > <url-pattern>/cometd/*</url-pattern> > </filter-mapping> > > <servlet> > <servlet-name>NmrServlet</servlet-name> > <servlet-class>NmrServlet</servlet-class> > <load-on-startup>2</load-on-startup> > </servlet> > <servlet-mapping> > <servlet-name>NmrServlet</servlet-name> > <url-pattern>/*</url-pattern> > </servlet-mapping> > </web-app> > > full stack trace: > > java.lang.ClassCastException: org.eclipse.jetty.continuation.Jetty6Continuation > at org.eclipse.jetty.continuation.ContinuationFilter.doFilter(ContinuationFilter.java:76) > 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 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.handle(HttpConnection.java:398) > at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > at org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:525) > at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > > -- > Construct the world in which you want to live. Then live there. > -- Construct the world in which you want to live. Then live there. --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email