Jersey + Jetty + Gradle 404 错误 - 但在 Tomcat 中有效

Jersey + Jetty + Gradle 404 Error - but works in Tomcat

正在尝试将 Jetty Gradle 插件添加到当前项目。我的 war 在 Tomcat 部署下运行良好,但 Jetty 似乎因 404 错误而崩溃——好像它没有正确读取 web.xml(已验证它在那里)。

localhost:8080/rest/test <- 适用于 Tomcat

localhost:8080/rest/test <- 404 当 运行 jettyRun(war) 在 Gradle

我的简化代码(Java)

package testPackage;
//includes...
@Path("test")
public class TestResource {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String testResponse() {
        return "test";
    }
}

build.grade

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

repositories {
    mavenCentral()
}

dependencies {
    compile "javax.ws.rs:jsr311-api:1.1.1"
    compile 'com.sun.jersey:jersey-bundle:1.19'
}

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

    <servlet>
        <servlet-name>Jersey</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>testPackage</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

</web-app>

我的 build.grade 需要以下内容:

jettyRun.contextPath = ''