Servlets 如何在带有jetty runner的gradle项目中包含servlet jar?

Servlets 如何在带有jetty runner的gradle项目中包含servlet jar?,servlets,gradle,jetty,Servlets,Gradle,Jetty,我正在使用android studio 1.3。我已经从这里安装了jetty runner插件: 我需要扩展HttpServlet,因此我在build.gradle中包含以下依赖项: apply plugin: 'java' apply plugin: 'war' apply plugin: 'jetty' dependencies { ... compile 'javax.servlet:servlet-api:3.0-alpha-1' } 这会导致该方法在jetty启动时

我正在使用android studio 1.3。我已经从这里安装了jetty runner插件:

我需要扩展HttpServlet,因此我在build.gradle中包含以下依赖项:

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'jetty'

dependencies {
    ...
    compile 'javax.servlet:servlet-api:3.0-alpha-1'
}
这会导致该方法在jetty启动时出现NoSuchMethod异常:

ServletContext.getServletRegistration
某些堆栈跟踪:

INFO::main: Logging initialized @131ms
INFO:oejr.Runner:main: Runner
INFO:oejs.Server:main: jetty-9.2.5.v20141112
WARN:oeja.AnnotationConfiguration:main: ServletContainerInitializers: detected. 
    Class hierarchy: empty
WARN:oejuc.AbstractLifeCycle:main: FAILED
    org.eclipse.jetty.annotations.ServletContainerInitializersStarter:
java.lang.NoSuchMethodError:
javax.servlet.ServletContext.getServletRegistration(Ljava/lang/String;)Ljavax/servlet/ServletRegistration;
...
如果我没有包含servlet jar依赖项,那么运行程序工作正常,但我无法编译项目,因为我需要扩展HttpServlet

我认为将servlet jar添加为“编译”依赖项可能不正确,但应该是这样的:

providedCompile 'javax.servlet:servlet-api:3.0-alpha-1'
但是仍然会抛出相同的NoSuchMethod异常

正确的方法是什么

谢谢

这是Servlet3.0的第一个alpha版本。这离最终版本还很远很远。特定的alpha版本确实还没有包含提到的方法。您可以通过使用ZIP工具提取有问题的JAR文件并检查源文件和类文件来轻松地确认它

您需要的是Servlet3.0API的最终版本