5

Resteasyフレームワークを備えたWebアプリケーション。

@Path("/do3")
@GET
public void response(@Context HttpServletResponse response) throws IOException{ 
    response.setStatus(202);

}

なぜ/do3が202ではなく204を返すのですか?前もって感謝します。

PS:(1)@postメソッドに切り替えます。また、期待されるコードを取得できません:202byget。(2)response.addHeader( "key"、 "value"); 正常に動作することができます。

4

1 に答える 1

6

RESTEasyは、メソッドを可能な限り解釈しています。リターンタイプを指定しなかったため、204(コンテンツなし)がクライアントに返されます。voidGETメソッドは実際にはあまり意味がないため、回避するか、別のHTTP動詞(POSTなど)に変換する必要があります。

トピックに関しては、これはJAX-RS呼び出しからの応答のステータスを設定する正しい方法ではありません。代わりにResponseBuilderを使用する必要があります。

Response.status(202).build();

HttpServletResponseもちろん、呼び出しのコンテキスト内で意味がある限り、注入されたものを他の目的に使用できます。

response.setHeader("Location", "http://www.example.com/myresource/5");
于 2012-04-16T04:58:33.627 に答える