0

現在の状態: 1. 私の web.xml で:

  <servlet-mapping>
   <servlet-name>javax.ws.rs.core.Application</servlet-name>
   <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>

2. 同じ @Path を持つ 2 つのサービス リソースがあります。

@Path("path")
public class Resource1 {
  //methods annotated with @Path
}

@Path("path")
public class SubResource extends Resource1 {
  //same methods annotated with @Path (are inherited, and not overridden)
}

質問。すべてのリクエストを「パス」から SubResource および Resource1 にリダイレクトする方法はありますか? 現在の状況では、アプリケーション サーバー (私の場合は JBoss) が自分でどのリソースを取るかを決定しているようで、常に同じとは限りません。

ありがとうございました。

4

1 に答える 1

0

私が選んだ解決策は、異なる@Pathを使用することです。SubResourceは、より多くのリテラル文字を持つことにより、より強力なパスを持つようになりました。

@Path("path")
public class Resource1 {
  //methods annotated with @Path
}

@Path("/path")//NOTE that the leading slash makes the difference
public class SubResource extends Resource1 {
  //same methods annotated with @Path (are inherited, not overridden)
}

JAX-RSの「選択アルゴリズム」の詳細については、こちらをご覧ください。

于 2012-08-22T14:47:21.773 に答える