上記の解決策を回避しようとして多くを検索した後、何も見つかりませんでした....
次に、メソッドを複製して時間を無駄にする必要がないように、カスタム アノテーションを作成することにしました。
github リンクは次のとおりです: Jersey-Gest
単一の注釈から新しいクラスを生成することにより、単一の注釈に GET およびポスト メソッドを作成できます。
私はそれが私を助けたのと同じようにあなたを助けることを願っています:)
編集:
何らかの理由で上記のリンクが機能しなくなった場合は、次のことを行いました。
- クラス メソッドのコンパイル時アノテーション@RestMethodを作成しました。
- クラスのコンパイル時アノテーション@RestClassを作成しました。
- Jersey の対応するアノテーションを使用して新しいクラスを生成する AnnotationProcessor を作成し、メソッドごとに、 @RestClass でアノテーションを付けた元のメソッドにコールバックするGETおよび POST メソッドを作成します。
@RestMethodでアノテーションが付けられたすべてのメソッドは静的であり、 @RestClassでアノテーションが付けられたクラス内に含まれている必要があります。
例 (TestService.java):
@RestClass(path = "/wsdl")
public class TestService
{
@RestMethod(path = "/helloGest")
public static String helloGest()
{
return "Hello Gest!";
}
}
(TestServiceImpl.java) のようなものを生成します。
@Path("/wsdl")
@Produces("application/xml")
public class TestServiceImpl
{
@GET
@Path("/helloGest")
@Produces(MediaType.APPLICATION_XML)
public String helloGestGet()
{
return TestService.helloGest();
}
@POST
@Path("/helloGest")
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_XML)
public String helloGestPost()
{
return TestService.helloGest();
}
}