2012-05-03 87 views
0

我試圖開發使用新澤西州的MavenEclipse的基本RESTful服務RESTful服務請求電源不可

我按照給出的示例here

我遵循鏈接中給出的步驟,但是當我嘗試運行該項目時,出現Request Resource Not available錯誤。

這是我在pom.xml文件

<dependencies> 
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>3.8.1</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>1.8</version> 
    </dependency> 
<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>2.4</version> 
    <scope>provided</scope> 
</dependency> 

修改依賴和改進建設的pom.xml

<finalName>maven.secondrest</finalName> 
<plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>tomcat-maven-plugin</artifactId> 
     <version>1.0-beta-1</version> 
     <configuration> 
      <port>9999</port> 
      <path>/</path> 
       <warFile>${project.basedir}/target/${project.build.finalName}.war</warFile> 
     </configuration> 
    </plugin> 
</plugins> 

的web.xml文件非常多與示例中給出的相同:

<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>rest.model</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> 

,這改變java代碼:

package rest.model; 
//imports 
@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(); 
} 
} 

我試圖通過運行它:MVN tomcat的:運行

當我進入本地主機:9999它會顯示一個消息「你好,世界」。但是,當我輸入的例子中給出的網址,我得到一個資源未找到錯誤。

這是我跑的網址:HTTP ://本地主機:9999/maven.secondrest/REST /你好/ NELO

回答

0

我好像我用的URL不正確。訪問此服務的正確URL將爲localhost:9999/rest/hello/nelo。也就是說,刪除了插件中已經提到的項目名稱。

+0

事實上,我並不完全知道這個插件如何實際訪問資源。任何建議閱讀材料,關於它的工作,將不勝感激。 –

相關問題