0

私の問題は非常に単純です。次のJAXRS定義を持つ汎用親クラスがあります

@POST
@Restricted(permissions = {"*_create"})
public Response save(T entity) throws Exception {

そして、次の宣言を持つジェネリックパラメーターTが型になる特定の子クラスを作成しました。Access

@POST
@Restricted(permissions = {"*_create"})
@Consumes({"application/x-www-form-urlencoded", "application/json", "application/xml"})
public Response save(final Access newAccess, @HeaderParam("Authorization") String token, @Context HttpServletRequest request) throws Exception {

私の問題は、Resteasy には明らかにランダムな動作があり、戦争の開始時に設定され、アプリケーションの存続期間中保持されることです。受信 POST リクエストを親 save メソッドに関連付ける場合もあれば、子 save メソッドに関連付ける場合もあります。私は体系的に使用されている子クラスを取得することを目指していますが、プロジェクト内の多くのリソース定義クラスが問題なくそれに依存しているため、親クラスを変更したくありません (たとえば、save メソッドをオーバーライドしません)。この問題を解決する簡単な (resteasy のような) 方法はありますか?

4

1 に答える 1

0

今のところ、私が見つけた解決策はpublic Response save(T entity) throws Exception、注釈なしで、子クラスの親メソッドの署名をオーバーライドすることでした@Override. メソッド定義にはthrow new UnsupportedOperationException();.

@Override
public Response save(Access entity) throws Exception {
    throw new UnsupportedOperationException();
}

これにより、この子クラスの jaxrs アノテーションを使用した他の保存宣言が曖昧さなく選択されます。

于 2012-05-15T11:54:12.057 に答える