2015-04-05 81 views
1

尝试将Jetty Gradle插件添加到当前项目。我的战争在Tomcat部署中可以正常工作,但是Jetty似乎因404错误而崩溃 - 就好像它没有正确读取web.xml(验证了它的存在)。Jersey + Jetty + Gradle 404错误 - 但在Tomcat中运行

本地主机:8080/REST /测试< - 工程在Tomcat中

本地主机:8080/REST /测试< - 404在摇篮运行jettyRun(战争)时

我的简化代码(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> 
+0

是的,作品在Tomcat的 - 它改变为用于简化。更新了示例以直接指向包,但也不起作用。 – vicsz 2015-04-05 14:55:29

回答

1

需要在我build.grade以下几点:

jettyRun.contextPath = ''