1

シンプルな安らかな Web サービスを開発していますが、これは初心者です。したがって、基本的なチュートリアルを参照し、それらを正常に実行しました。

以下は、さらに進むために私が書いたサンプルコードです

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

@Path("/text/{sso}")

public class Do {


      @GET
      @Produces(MediaType.TEXT_PLAIN)
      public String simple(@PathParam("ss") @QueryParam("d") String params) {
        return "Hello Jersey"+params;
      }

      @GET
      @Produces(MediaType.TEXT_PLAIN)
      public String advanced(@PathParam("as") @QueryParam("d") String params) {
        return "Hello Jersey-----"+params;
      }
}

基本的に必要なのは、同じクラスで 2 つの異なるメソッドを公開し、URL に基づいて適切なメソッドにアクセスすることです。

上記の方法を実行すると、次のエラーがスローされます - com.sun.jersey.spi.inject.Errors$ErrorMessagesException はいの場合、私が見逃している場所を教えてください。そうでない場合、そのようなシナリオの正しいアプローチは何ですか?

4

2 に答える 2

2

コードには 2 つの問題があります。

  1. 注釈は@PathParam、メソッドの引数に適用する必要があります
  2. 注釈の値は@PathParam、パス セグメントと一致する必要があります。

クラス内の唯一のパス セグメントは、次のように定義されます。

@Path("/text/{sso}")

値は「sso」です。したがって、コードは次のようになります。

@Path("/text/{sso}")
public class Do {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String simple(@PathParam("sso") String sso,
            @QueryParam("d") String params) {
        return "Hello Jersey" + params;
    }

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String advanced(@PathParam("sso") String sso,
            @QueryParam("d") String params) {
        return "Hello Jersey-----" + params;
    }
}
于 2013-04-09T08:05:11.883 に答える
0

2 つのを一致させたい場合、メソッドには2 つのQueryParam引数が必要です。

public String simple(@PathParam("ss") String paramSs,
                     @PathParam("d") String paramD) {
  // ...
}

@PathParam1 つのメソッド引数の注釈です。

于 2013-04-09T08:02:16.780 に答える