Hi, On Wed, Dec 30, 2015 at 1:03 PM, John Jiang <[email protected]> wrote: > Hi guys, > I'm using Jetty-9.3.5. > My web app includes a pretty simple Servlet, as shown as the below, > public class ServerPushServlet extends HttpServlet { > > protected void doGet(HttpServletRequest request, > HttpServletResponse response) throws ServletException, > IOException { > System.out.println("request=" + request); > Request baseRequest = (Request) request; > System.out.println("baseRequest=" + baseRequest); > } > } > > When I try to access this Servlet via browser, the output in console is the > below, > request=Request(GET //localhost:9020/push/primary)@63206451 > 2015-12-30 19:47:11.471:WARN:oejs.ServletHandler:qtp1104106489-15: /test > java.lang.ClassCastException: org.eclipse.jetty.server.Request cannot be > cast to org.eclipse.jetty.server.Request > at httptest.ServerPushServlet.doGet(ServerPushServlet.java:19)
The Servlet specification mandates that server implementation classes must be hidden from webapps. As such, you cannot use server classes in your webapp. If you try to include the jetty-server-<version>.jar in your war, you get the ClassCastException. If you remove it from the war, you get a ClassNotFoundException because the server hides it from the webapp. If you really need to use Jetty's classes, your best bet is to avoid webapps and their classloading, and just use Jetty's ServletContextHandler which will allow you to deploy Servlets without the classloading complications. -- Simone Bordet ---- http://cometd.org http://webtide.com Developer advice, training, services and support from the Jetty & CometD experts. _______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/jetty-users
