2

これが私のJersey Serviceで、URLを使用してサービスにアクセスします

http://host:port/contextroot/welcome/data

Jersey サーブレットを /welcome/* にマップすると、404 エラーが発生します。しかし、web.xml で /* を指定すると、リクエストは正常に処理されます。webapp のすべてのリクエストがジャージーを通過するのは望ましくありません。/welcome でパスをリクエストのみに制限するにはどうすればよいですか?

@Path("/welcome")
public class WelcomeRestJson {

    @POST
    @Path("/data")
    @Produces("text/plain")
    @Consumes("application/json")

    public String processPostData(MyObject myObject) {
        System.out.println("Inside processPostData");
        return "success";
    }

}

4

2 に答える 2

2

サーブレットを /welcome/* にマッピングするときは、ルート リソース (WelcomeRestJson) のパス テンプレートを @Path("/welcome") から @Path("/") に変更するだけです。これにより、同じ URL ( http://host:port/contextroot/welcome/data) が以前と同じように機能します。 .

于 2012-06-28T09:18:00.623 に答える
0

web.xml で /welcome/* にマップします。

<servlet>
    <servlet-name>ServletAdaptor</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ServletAdaptor</servlet-name>
    <url-pattern>/welcome/*</url-pattern>
</servlet-mapping>

次に、/welcome の下で Web サービスを呼び出し、別のパスで残りの要求を呼び出すことができます。

于 2012-06-28T06:20:01.467 に答える