java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.startAsync

13,607

I'm guessing your server is using the wrong version of the Servlet spec. AsyncContext is only available since Servlet spec v 3.0. You probably have the right version in your development environment, but your server uses an outdated version of the api, hence the error at runtime.

Share:
13,607

Related videos on Youtube

Soumya Simanta
Author by

Soumya Simanta

Updated on June 16, 2022

Comments

  • Soumya Simanta
    Soumya Simanta almost 2 years

    Any idea why I'm getting this error at runtime ? I'm trying to deploy an AsyncServlet on Jetty.

    java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.startAsync(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Ljavax/servlet/AsyncContext;
            at my.server.SlowServlet.doGet(SlowServlet.java:16)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:705)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:814)
            at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)
            at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480)
            at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
            at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
            at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
            at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)
            at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
            at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
            at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)
            at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
            at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
            at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
            at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
            at org.eclipse.jetty.server.Server.handle(Server.java:345)
            at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
            at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919)
            at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)
            at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)
            at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)
            at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)
            at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)
            at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
            at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
            at java.lang.Thread.run(Thread.java:680)
    

    I've the following Maven dependencies in my pom.xml

        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>${jettyVersion}</version>
        </dependency>
    
    
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlet</artifactId>
            <version>${jettyVersion}</version>
        </dependency>
    
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlets</artifactId>
            <version>${jettyVersion}</version>
        </dependency>
    
    
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-webapp</artifactId>
            <version>${jettyVersion}</version>
        </dependency>    
    
    • Dawood
      Dawood almost 12 years
      Were you able to solve this problem? I'm running into the same issue and I was wondering if you were able to fix it.
  • Soumya Simanta
    Soumya Simanta almost 12 years
    Any idea how I can debug this. I'm using Maven and I thought that it should take care of both development and runtime dependencies.
  • jesse mcconnell
    jesse mcconnell almost 12 years
    maven does, have you have to give it good information...try using > mvn -X install and that should give you the dependency tree, you might be getting 2.5 transitively from somewhere, in which case you just need to add an exclusion
  • Soumya Simanta
    Soumya Simanta almost 12 years
    thanks. I used plugin to find the duplicates and replaced them with an exclusion. <groupId>com.ning.maven.plugins</groupId> <artifactId>maven-duplicate-finder-plugin</artifactId>. However, that still didn't solve my problem.