2012-05-26 93 views
1

我試圖創建使用Eclipse RESTful Web服務,隨後在HTTP狀態404 - Servlet的JAX-RS Servlet是不可

http://shrikantuw.blogspot.in/2012/03/jersy-developing-restful-web-service.html

提到的所有步驟,但是當我嘗試運行在Tomcat中並擊中

http://localhost:8080/RestFulWS/rest/exampleWithOutParam/getName 

我越來越

HTTP狀態404 - Servlet的JAX-RS Servlet是不可

我的tomcat的端口也只有8080。

請讓我該怎麼做。

+0

如果您直接通過本地主機服務器上的瀏覽器訪問該頁面,會發生什麼情況?你有同樣的錯誤嗎?我的猜測是你沒有將servlet放在正確的位置,所以你得到了404,例如「找不到頁面」。 – Anthony

+1

使用@Path註釋仔細檢查代碼中添加的URL模式和資源路徑。嘗試去http:// localhost:8080/RestFulWS/rest/application.wadl澤西通常會自動創建一個描述所有資源的WADL文件,如果它們與您傳遞的路徑相匹配,則會chceck。 – toniedzwiedz

+0

爲什麼不把實際的web.xml內容和web服務代碼放在這裏? –

回答

0

如果你的web.xml和服務類映射如下,它應該正常工作:

您的網址:

http://localhost:8080/RestFulWS/rest/exampleWithOutParam/getName 

的web.xml:

<display-name>RestFulWS</display-name> 
<servlet> 
    <servlet-name>Jersey REST Service</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>com.yourapp</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Jersey REST Service</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

您的服務:

package com.yourapp; 
// imports here 
@Path("/exampleWithOutParam") 
public class YourService { 
    @GET 
    @Path("/getName") 
    @Produces("text/plain") 
    public Response getName() { 
     return Response.ok("OK").build(); 
    } 
} 
0

Make s運動衫JAR確實是你的網絡服務的一部分(也就是說,它們在tomcat中部署時位於Web服務包的WEB-INF/lib目錄中)。

0
 <display-name>RestFulWS</display-name> 
    <servlet> 
     <servlet-name>Jersey REST Service</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servletclass> 
     <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>com.yourapp</param-value> 
    </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
      <servlet-name>Jersey REST Service</servlet-name> 
      <url-pattern>/rest/*</url-pattern> 
     </servlet-mapping> 

你的web.xml文件應該是這樣的。映射servlet類和您的根資源類。