2012-04-05 8 views
4

私は@QueryParamでメソッドをオーバーロードしたいと思いますが、毎回私はそれが投げるこのコードを実行しよう:Jersey/Springの@QueryParamでメソッドをオーバーロードするにはどうすればよいですか?

SEVERE: Exception occurred when intialization 
com.sun.jersey.spi.inject.Errors$ErrorMessagesException 

私のコードは次のとおりです。いいえすることができ

@GET 
@Path("/test") 
@Produces("text/plain") 
public String getText(@QueryParam("PID") String pid) 
{ 
    return pid; 
} 

@GET 
@Path("/test") 
@Produces("text/plain") 
public String getText(@QueryParam("PID") String pid, @QueryParam("NAME") String name) 
{ 
    return pid + name; 
} 

答えて

7

Javaでは問題ありませんが、サーブレット側からは、各URLをクラス内のある関数にマップする必要があります。

できることは2つの方法に分けたり、パラメータをチェックして適切なロジックを実行する1つの方法を構築することです。

+3

1の方法は、ユニークなパスを持っている必要があります。クエリパラメータはパスの一部とはみなされません。代わりに '@ PathParam'を使ってみることもできます。 – Qwerky

0

要求に存在する要求/クエリパラメータの観点から、残りのエンドポイントをオーバーロードすることができます。ここで

は私のユースケースを解決する答えだ:異なる引数で同じURLパターンのための2つのメソッドを作成

関連する問題