Glassfish 4 で Jersey 2.3.1 を使用しています。
私のリソースメソッドは次のようになります。
@POST
@Consumes("application/x-www-form-urlencoded")
@Path("/update")
public Response update(MultivaluedMap<String, String> formParams){
//business logic
//return appropriate Response object
}
私はいつもformParams.size()
ゼロになります。送信されたフォーム パラメータがMultivaluedMap
オブジェクトで使用できないのはなぜですか?
サーバー ログの次の警告メッセージ:
警告: URI へのサーブレット リクエストにはhttp://localhost:8080/myApp/resource/update
、リクエスト ボディにフォーム パラメータが含まれていますが、リクエスト ボディは、リクエスト パラメータにアクセスするサーブレットまたはサーブレット フィルタによって消費されています。@FormParam を使用するリソース メソッドのみが期待どおりに機能します。他の方法でリクエスト本文を使用するリソース メソッドは、期待どおりに機能しません。
(すべてのサーブレットフィルターを無効にする前後にテストしました。ジャージーフィルターは使用していません)