2017-08-06 8 views
0

私は変更することはできないのですAPIがあります。POSTリクエストは、エンドポイントのメソッドをトリガされていない

@Override 
public Response createAccomEntry(@PathParam("area") String area, @PathParam("val1") String val1, @PathParam("val2") String val2) { 
    //can't debug the code here 
    return Response.status(Response.Status.OK).build(); 
} 

クリエイターの:

@POST 
@Path("/accomodation/{area}/{val1}/{val2}") 
Response createAccomEntry(@PathParam("area") String area, @PathParam("val1") String val1, @PathParam("val2") String val2); 

は、私が唯一の実装を変更することができますがAPIは消費するMIMEタイプを指定していないため、現時点ではデバッグできません。

area=mock&val1=mock&val2=mock 

しかし、私が得るすべてを:私のRESTクライアントから私はContent-Typeヘッダとして、私はそれが好き与えるペイロードに「アプリケーション/ x-www-form-urlencodedで」設定http://localhost:8080/accomodation/area/val1/val2へのPOSTリクエストを行います404です。私は何が間違っていますか?

答えて

0

あなたは実装任意の JAX-RSアノテーションを追加するとためです、それは、対応するインターフェイスメソッドのすべて JAX-RSアノテーションを否定します。これが仕様の設計方法です。したがって、@PathParamを使用すると、それだけで@POST@Pathを含むインターフェイスメソッドの他のすべての注釈が無効になります。これは、そのエンドポイントをJerseyに登録する必要があります。したがって、実装上のすべての@PathParamを削除するだけで動作するはずです。

+0

本当にやったよ! –

+0

しかし、すでに実装されているメソッドのいくつかが@PathParamsでそのまま動作するのは奇妙です... –

+0

実装メソッドに注釈を追加する場合は、_all_を追加する必要があります。 –

関連する問題