T - プロバイダーがサポートする Java 型 public interface MessageBodyReader<T>MessageBodyReader 実装には、適切と見なされるメディア型を制限するために、Consumes というアノテーションを付けることができます。MessageBodyReader パイプラインは、一致するリソースメソッドがエンティティパラメーターを宣言するか、少なくとも 1 つの FormParam を使用する場合に実行されます。MessageBodyReader 契約を実装するプロバイダーは、プログラムで JAX-RS ランタイムに登録するか、プロバイダーのスキャンフェーズ中に JAX-RS ランタイムによって自動的に検出されるように @Provider アノテーションを付ける必要があります。
| 修飾子と型 | メソッドと説明 |
|---|---|
boolean | isReadable(ClassSE<?> type, TypeSE genericType, AnnotationSE[] annotations, MediaType mediaType)MessageBodyReader が特定の型のインスタンスを生成できるかどうかを確認します。 |
T | readFrom(ClassSE<T> type, TypeSE genericType, AnnotationSE[] annotations, MediaType mediaType, MultivaluedMap<StringSE, StringSE> httpHeaders, InputStreamSE entityStream)InputStreamSE から型を読み取ります。 |
boolean isReadable(ClassSE<?> type, TypeSE genericType, AnnotationSE[] annotations, MediaType mediaType)
type パラメーターは生成されるインスタンスのクラスを示し、genericType パラメーターは生成されるインスタンスの java.lang.reflect.TypeSE を示します。例: 生成されるインスタンスが List<String> の場合、type パラメーターは java.util.List になり、genericType パラメーターは java.lang.reflect.ParameterizedTypeSE になります。type - 生成されるインスタンスのクラス。genericType - 生成されるインスタンスの型。例: メッセージ本文をメソッドパラメーターに変換する場合、これは Method.getGenericParameterTypes によって返されるメソッドパラメーターの正式な型になります。annotations - 生成されたインスタンスで初期化されるアーティファクトの宣言に関するアノテーションの配列。例: メッセージ本文をメソッドパラメーターに変換する場合、これは Method.getParameterAnnotations によって返されるそのパラメーターのアノテーションになります。mediaType - HTTP エンティティのメディア型。リクエストで指定されていない場合は、application/octet-stream が使用されます。true、それ以外の場合は false。T readFrom(ClassSE<T> type, TypeSE genericType, AnnotationSE[] annotations, MediaType mediaType, MultivaluedMap<StringSE,StringSE> httpHeaders, InputStreamSE entityStream) throws IOExceptionSE, WebApplicationException
InputStreamSE から型を読み取ります。 エンティティ入力ストリームが空の場合、リーダーは、長さがゼロのエンティティの Java 表現を返すか、サポートされている Java 型に長さがゼロのエンティティ表現が定義されていない場合は NoContentException をスローすることが期待されます。NoContentException は、サーバーリクエストエンティティの読み取り中にメッセージ本文リーダーによってスローされた場合、JAX-RS サーバーランタイムによって、元の NoContentException をラップする BadRequestException に自動的に変換され、登録された exception mappers による標準処理のために再スローされます。
type - エンティティストリームから読み取られる型。genericType - 生成されるインスタンスの型。例: メッセージ本文をメソッドパラメーターに変換する場合、これは Method.getGenericParameterTypes によって返されるメソッドパラメーターの正式な型になります。annotations - 生成されたインスタンスで初期化されるアーティファクトの宣言に関するアノテーションの配列。例: メッセージ本文をメソッドパラメーターに変換する場合、これは Method.getParameterAnnotations によって返されるそのパラメーターのアノテーションになります。mediaType - HTTP エンティティのメディア型。httpHeaders - HTTP エンティティに関連付けられた読み取り専用の HTTP ヘッダー。entityStream - HTTP エンティティの InputStreamSE。呼び出し元は、エンティティが消費されたときに入力ストリームが確実に終了するようにする責任があります。実装は入力ストリームを閉じてはなりません。NoContentException をスローすることが期待されます。IOExceptionSE - IO エラーが発生した場合。エンティティ入力ストリームが空であり、リーダーが長さゼロのエンティティの Java 表現を生成できない場合、NoContentException がスローされることが予想されます。WebApplicationException - 特定の HTTP エラーレスポンスを生成する必要がある場合。レスポンスがコミットされる前にスローされた場合にのみ有効です。Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.