2014-10-18 100 views
1

我創造與球衣2.0 RESTful Web服務,這是我的web.xml文件:Java的RESTful Web服務,找不到404

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<servlet> 
    <servlet-name>Rest</servlet-name> 
    <servlet-class> 
     com.shop.domain.ShoppingApplication 
    </servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Rest</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 
</web-app> 

我ShoppingApplication類:

public class ShoppingApplication extends Application { 

    @Override 
    public Set<Class<?>> getClasses() { 
     Set<Class<?>> s = new HashSet<Class<?>>(); 
     s.add(CustomerResource.class); 
     return s; 
    } 
} 

而且我CustomerResource類:

@Path("/customers") 
public class CustomerResource{ 

    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String getCustomer(){ 
     return "Hello"; 
    } 
} 

本地主機上運行:8080 /客戶,我得到了一個404沒有找到頁面,我應該如何解決它。

+0

本地主機:8080是否工作?去那裏看看哪些是你的可用資源(必須有一個GUI管理器)。 – 2014-10-18 19:21:40

+0

@powerMock嗨,glassfish服務器工作。 – Tom 2014-10-18 19:23:59

回答

0

使用非JEE6容器內的JAX-RS需要你提供一個JAX-RS的Servlet(如新澤西州)要你的web.xml中映射

你的web.xml更改爲

<web-app> 
    <servlet> 
     <servlet-name>MyApplication</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>javax.ws.rs.Application</param-name> 
      <param-value>com.shop.domain.ShoppingApplication</param-value> 
     </init-param> 
    </servlet> 
    ... 
    <servlet-mapping> 
     <servlet-name>MyApplication</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
    ... 
</web-app> 

請參閱https://jersey.java.net/documentation/latest/deployment.html#deployment.servlet.2瞭解文檔。

+0

嗨,改變web.xml後,我仍然有404,似乎''領域沒有任何意義,因爲無論如何改變它,它不顯示錯誤,但只是給404。 – Tom 2014-10-18 19:27:42

+0

保留記住,localhost:8080/customers只有在您的應用程序部署到根上下文(ROOT.war)時才能使用。在其他情況下,觀察你的上下文路徑(類似mayapp.war部署到localhost:8080/myapp/...) – mp911de 2014-10-19 14:30:25