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

java.lang.NoSuchMethodError:javax.servlet.http.HttpServletRequest.startAsync,java,jetty,servlet-3.0,Java,Jetty,Servlet 3.0,知道为什么我在运行时会出现这个错误吗? 我正在尝试在Jetty上部署一个AsyncServlet java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.startAsync(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Ljavax/servlet/AsyncContext; at my.server.SlowServlet

知道为什么我在运行时会出现这个错误吗? 我正在尝试在Jetty上部署一个AsyncServlet

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)
我在pom.xml中有以下Maven依赖项

    <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>    

org.eclipse.jetty
jetty服务器
${jettyVersion}
org.eclipse.jetty
码头servlet
${jettyVersion}
org.eclipse.jetty
防波堤小艇
${jettyVersion}
org.eclipse.jetty
jetty网络应用程序
${jettyVersion}

我猜您的服务器使用了错误版本的Servlet spec。AsyncContext仅在Servlet spec v 3.0之后才可用。您的开发环境中可能有正确的版本,但您的服务器使用了过时的api版本,因此在运行时会出现错误。

知道我如何调试它吗。我正在使用Maven,我认为它应该同时考虑开发和运行时的依赖关系。Maven确实需要,你必须给它提供好的信息…尝试使用>mvn-X安装,这会给你提供依赖关系树,你可能会从某个地方得到2.5版本,在这种情况下,你只需要添加一个附件。我使用插件查找重复项,并用排除项替换它们。插件maven重复查找器插件。然而,这仍然不能解决我的问题。你能解决这个问题吗?我遇到了同样的问题,我想知道你是否能解决它。我发现了问题。我的类路径与geromino-servlet_2.5_spec-1.1.2中的servlet API发生冲突。