戻り値に使用できるJava型とMIMEメディアタイプの組み合わせを次の表に示します。
表25-7 エンティティボディの戻り値に使用できるJavaの型とMIMEメディアタイプの組み合わせ
項番 | Javaの型 | charset※1 | MIMEメディアタイプ |
---|---|---|---|
1 | byte[] | × | 任意(*/*) |
2 | java.lang.String | ○ | 任意(*/*) |
3 | java.io.InputStream | × | 任意(*/*) |
4 | java.io.Reader | ○ | 任意(*/*) |
5 | java.io.File※2 | × | 任意(*/*) |
6 | javax.activation.DataSource | × | 任意(*/*) |
7 | javax.xml.transform.Source※3 | × | 任意(*/*) |
8 | javax.xml.bind.JAXBElement<String>※4,※5 | × | text/xml, application/xml, application/*+xml |
9 | XmlRootElementアノテーションおよび/またはXmlTypeアノテーションでアノテートされたJAXBクラス※5 | × | text/xml, application/xml, application/*+xml |
10 | javax.ws.rs.core.MultivaluedMap<String,String> | ○ | application/x-www-form-urlencoded |
11 | org.w3c.dom.Document | × | 任意(*/*) |
12 | java.awt.image.RenderedImage | × | application/octet-stream, image/jpeg |
13 | com.cosminexus.jersey.core.provider.EntityHolder<T>※6 | △ | Tに指定した型と同じMIMEメディアタイプです。 |
14 | com.cosminexus.jersey.api.client.GenericType<T>※7 | △ | Tに指定した型と同じMIMEメディアタイプです。 |
15 | POJO※8 | ○ | application/json |
指定したJavaの型がサポートされない型の場合,エラーとなり(KDJJ10031-EおよびKDJJ18888-E),ClientHandlerExceptionがスローされます。
戻り値が次に示すJavaの型で,HTTPレスポンスのエンティティボディが使用できないMIMEメディアタイプの場合,エラーとなり(KDJJ10031-EまたはKDJJ18888-E),ClientHandlerExceptionがスローされます。
HTTPレスポンスのエンティティボディからの変換でIOExceptionが発生した場合,エラーとなり(KDJJ18888-E),ClientHandlerExceptionがスローされます。
HTTPレスポンスのエンティティボディからの変換でIOException以外の例外がスローされた場合は,対応する例外がスローされます。なお,ログを確認するときは,JAX-RS機能のログファイルではなくJ2EEサーバのログファイルを確認してください
java.awt.image.RenderedImageのエンティティパラメタでは,Content-Type HTTPヘッダがimage/*の場合,エラーとなり(KDJJ18888-E),java.io.IOExceptionをラップしたClientHandlerExceptionがスローされます。
com.cosminexus.jersey.api.client.GenericType<T>のエンティティパラメタでは,HTTPレスポンスにエンティティボディがある場合,Tが表の項番1のとき,エラーとなり(KDJJ10031-EおよびKDJJ18888-E),ClientHandlerExceptionがスローされます。
com.cosminexus.jersey.core.provider.EntityHolder<T>のエンティティパラメタでは,HTTPレスポンスにエンティティボディがある場合,次に示すどちらかのときにエラーとなり(KDJJ10003-E),javax.ws.rs.WebApplicationExceptionがスローされます。
クライアントAPIがJ2EEサーバ上で動作する場合,エンティティボディに含まれるフォームパラメタ数の上限値のデフォルトは10,000です。エンティティパラメタの型がjavax.ws.rs.core.MultivaluedMap<String,String>,またはcom.cosminexus.jersey.core.provider.GenericType<EntityHolder<javax.ws.rs.core.MultivaluedMap<String,String>>>のとき,レスポンスのパラメタ数が指定した値を超えたときは,RuntimeExceptionがスローされます。必要に応じてJ2EEサーバ用ユーザプロパティファイル(usrconf.properties)のwebserver.connector.limit.max_parameter_countプロパティで変更してください。なお,ログを確認するときは,JAX-RS機能のログファイルではなくJ2EEサーバのログファイルを確認してください。
HTTPレスポンスにContent-Type HTTPヘッダが存在しない場合,MIMEメディアタイプはapplication/octet-streamであると見なされます。