0

こんにちは皆さん、Jersey を使用して RESTful Web サービスのチュートリアルを実装しました。

私のプロジェクトのセットアップは次のとおりです。

フォルダ構造:

  • 安らかな
    • Web-INF
      • クラス\com\mcnz\ws
        • HelloWorldResource.java
        • HelloWorldResource.class
      • ライブラリ
        • いくつかのライブラリ (ジャージ 1.6 アーカイブ)
      • web.xml

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
  <web-app
    xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"
    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_3_0.xsd"> 
    <servlet>
       <servlet-name>RestfulContainer</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.mcnz.ws</param-value>
       </init-param>
           <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
       <servlet-name>RestfulContainer</servlet-name>
       <url-pattern>/resources/*</url-pattern>
    </servlet-mapping>
</web-app>

HelloWorldResource.java

package com.mcnz.ws;
import javax.ws.rs.*;
@Path("helloworld")
public class HelloWorldResource {
    @GET
    @Produces("text/plain")
    public String getMessage() {
        return "Rest Never Sleeps";
    }
}

私は戦争を構築し、すべてが実行されているように見えますが、Tomcat 7 への展開後、URL

http://localhost:8080/restful/resources/helloworld 

応答しない

ここに私の .war

4

3 に答える 3

1

プロジェクトの構造がごちゃごちゃしていると思います.RESTリソースがWEB-INFフォルダにあるのはなぜですか? に配置する必要がありましたsrc/main/java最初の REST プロジェクトでは、このチュートリアルに従うことをお勧めします。また、フォルダー構造をもう一度見て、依存関係の管理にMavenを使用することをお勧めします。ここでいくつかのチュートリアルを見つけることができます。

于 2013-03-24T07:18:41.790 に答える
0

クラスレベルのパスがあります。メソッドレベルに配置してみてください(@GETステートメントの後)
たとえば、@GETの後に最初のものと別のものを残すこともできます

これは私の1つのサンプルです

@Path("/user/")
public class UserResource {

    // Method for Registering a User, receives and replies a JSON
    @POST
    @Path("/register")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public StatusResult register(UserRegistrationRequest urr) {
        //Calls the controller to register the producer, and returns result
        StatusResult result = UserController.register(urr);
        return result;
    }

この場合、localhost:8080/restful/resources/user/register のように呼び出します。

于 2013-03-23T10:11:25.090 に答える