パッケージ jakarta.ws.rs.ext
インターフェース MessageBodyReader<T>
- 型パラメーター:
T- プロバイダーがサポートする Java 型
public interface MessageBodyReader<T>ストリームの Java 型への変換をサポートするプロバイダーの契約。MessageBodyReader実装には、適切と見なされるメディア型を制限するために、Consumesというアノテーションを付けることができます。MessageBodyReaderパイプラインは、一致するリソースメソッドがエンティティパラメーターを宣言するか、少なくとも 1 つのFormParamを使用する場合に実行されます。MessageBodyReader契約を実装するプロバイダーは、プログラムで JAX-RS ランタイムに登録するか、プロバイダーのスキャンフェーズ中に JAX-RS ランタイムによって自動的に検出されるように@Providerアノテーションを付ける必要があります。
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 booleanisReadable(ClassSE<?> type, TypeSE genericType, AnnotationSE[] annotations, MediaType mediaType)MessageBodyReader が特定の型のインスタンスを生成できるかどうかを確認します。TreadFrom(ClassSE<T> type, TypeSE genericType, AnnotationSE[] annotations, MediaType mediaType, MultivaluedMap<StringSE,StringSE> httpHeaders, InputStreamSE entityStream)InputStreamSE から型を読み取ります。
メソッドの詳細
isReadable
boolean isReadable(ClassSE<?> type, TypeSE genericType, AnnotationSE[] annotations, MediaType mediaType)
MessageBodyReader が特定の型のインスタンスを生成できるかどうかを確認します。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。
readFrom
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。呼び出し元は、エンティティが消費されたときに入力ストリームが確実に終了するようにする責任があります。実装は入力ストリームを閉じてはなりません。- 戻り値:
- ストリームから読み取られた型。エンティティ入力ストリームが空の場合、リーダーは長さがゼロのエンティティを表すインスタンスを返すか、サポートされている Java 型に対して長さがゼロのエンティティ表現が定義されていない場合は
NoContentExceptionをスローすることが期待されます。 - 例外:
IOExceptionSE- IO エラーが発生した場合。エンティティ入力ストリームが空であり、リーダーが長さゼロのエンティティの Java 表現を生成できない場合、NoContentExceptionがスローされることが予想されます。WebApplicationException- 特定の HTTP エラーレスポンスを生成する必要がある場合。レスポンスがコミットされる前にスローされた場合にのみ有効です。