2013-02-01 53 views
0

我使用澤西托馬斯6和日食朱諾。澤西與tomcat給404錯誤

我的文件名的HelloWorldService:

package com.mkyong.rest; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.core.Response; 

@Path("/hello") 
public class HelloWorldService { 

@GET 
@Path("/{param}") 
public Response getMsg(@PathParam("param") String msg) { 

    String output = "Jersey say : " + msg; 

    return Response.status(200).entity(output).build(); 

    } 

} 

web.xml中:

<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

<display-name>Restful Web Application</display-name> 

<servlet> 
    <servlet-name>jersey-serlvet</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.mkyong.rest</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>jersey-serlvet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

當我運行使用Apache服務器 - 因爲它是將這個網址我的項目:

http://localhost:8080/Test/WEB-INF/classes/com/mkyong/rest/HelloWorldService.java 

,我得到404錯誤。

我也嘗試過版本=「3.0」,它沒有工作。 請幫我一把。

回答

3

你應該給你的網址如下;

http://localhost:8080/<your-war-name>/rest/hello/<your-param> 
+1

謝謝你的答案。我創建了war文件並將其粘貼到apache文件夾中,然後使用您提供的url格式進行擦除,然後運行。但我想知道爲什麼它不在eclipse瀏覽器中運行?我在eclipse瀏覽器中輸入了我在firefox中使用的url,但它顯示無法啓動應用程序。如果可以,請和我一起。謝謝。 –

+0

我有同樣的問題。我的澤西有時不適用於J2EE預覽服務器。但是在服務器上工作。任何能給出線索的原因是什麼? – Shamseer

0

的地址爲您的例子是:

http://localhost:8080/Test/rest/hello/stranger 

,這將輸出:

Jersey say : stranger 

附:我猜你的WAR名稱是Test.war,因爲你的部署路徑是localhost:8080/Test

+0

爲什麼人們發表重複的答案? –