同じ GET パスに対して複数の関数を使用したいと考えています。
同様に、クエリ パラメータが URL 文字列のパラメータと一致する場合にのみ、Web サービスがこれらの関数を「検索」するようにしたいと考えています。
例えば:
私が持っていますPath("/myGET")
そして、そのパスには2つの機能が必要です:
@GET @Produces(MediaType.APPLICATION_JSON) @TypeHint(TagSets.class) public Response getTagSets(@QueryParam("entityId") Integer entityId) { ... }
と
@GET @Produces(MediaType.APPLICATION_JSON) @TypeHint(TagSets.class) public Response getTagSets(){ ... }
現在、エラーが発生しています:
SEVERE: 次のエラーと警告がリソース クラスまたはプロバイダー クラスで検出されました: SEVERE: メディア タイプの競合が発生しています。リソース メソッド public javax.ws.rs.core.Response<...>.getTagSets(java.lang.Integer) および public javax.ws.rs.core.Response<...>.getTagSets(java.lang. Integer,java.lang.Integer) は、同じメディア タイプを生成できます。重大: メディア タイプの競合を生成しています。リソース メソッド public javax.ws.rs.core.Response<...>.getTagSets() および public javax.ws.rs.core.Response <...>.getTagSets(java.lang.Integer,java.lang .Integer) は同じメディア タイプを生成できます
最初に:私がここでやりたいことを達成する方法はありますか..
2番目:これが利用可能な場合、クエリパラメーターが関数で要求されたものと正確に一致する場合にのみ、パスが見つかる方法はありますか? たとえば、同じパスが呼び出された@QueryParam("differentParam")
場合、2 つの関数のいずれにも到達しません。
3番目: Jerseyでこれを行う方法がない場合、他のフレームワークで行う方法はありますか?.
重要: 質問に答える人々は、解決策ではなく回避策を探していると考えています。今日、私は1つの関数を使用し、パラメーターをチェックして、これから必要なものを呼び出しています(これは、質問を投稿する前に使用したものです)。しかし、私が探しているのは、おそらくフレームワークの力を使って問題を解決することです
ありがとう。