HTTPリクエストのエンティティボディに使用できるJava型とMIMEメディアタイプの組み合わせを次の表に示します。なお,これ以外の組み合わせの場合,JAX-RSエンジンの動作は保証されません。
表25-6 エンティティボディに使用できるJavaの型とMIMEメディアタイプの組み合わせ
項番 | Javaの型 | charset※1 | Content-Type HTTPヘッダ | Content-Type HTTPヘッダ※2 (JAX-RSエンジン) |
---|---|---|---|---|
1 | byte[] | × | 任意(*/*) | application/octet-stream |
2 | java.lang.String | ○ | 任意(*/*) | text/plain |
3 | java.io.InputStream | × | 任意(*/*) | application/octet-stream |
4 | java.io.Reader | ○ | 任意(*/*) | text/plain |
5 | java.io.File | × | 任意(*/*) | application/octet-stream |
6 | javax.activation.DataSource | × | 任意(*/*) | application/octet-stream |
7 | javax.xml.transform.Source※3 | × | 任意(*/*) | application/xml |
8 | javax.xml.bind.JAXBElement<String>※4 | ○ | ext/xml, application/xml, application/*+xml | application/xml |
9 | XmlRootElementアノテーションでアノテートされたJAXBクラス※4 | ○ | text/xml, application/xml, application/*+xml | application/xml |
10 | javax.ws.rs.core.MultivaluedMap<String,String> | ○ | application/x-www-form-urlencoded | application/x-www-form-urlencoded |
11 | javax.ws.rs.core.StreamingOutput | × | 任意(*/*) | application/octet-stream |
12 | org.w3c.dom.Document | × | 任意(*/*) | application/xml |
13 | java.awt.image.RenderedImage | × | image/jpeg | application/octet-stream |
14 | javax.ws.rs.core.GenericEntity<T>※5 | △ | Tに指定した型と同じMIMEメディアタイプです。 | Tに指定した型と同じMIMEメディアタイプです。 |
15 | POJO※6 | ×※7 | application/json | application/octet-stream |
指定したJavaの型がサポートされていない型で,値がnullでない場合,エラーとなり(KDJJ10032-EおよびKDJJ18888-E),ClientHandlerExceptionがスローされます。ただし,指定したJavaの型がjavax.mail.internet.MimeMultipartで,MIMEメディアタイプがmultipart/*のときはエラーにならずに正常終了します。
次に示すJavaの型では,HTTPリクエストのエンティティボディが使用できないMIMEメディアタイプの場合,エラーとなり(KDJJ10032-EおよびKDJJ18888-E),ClientHandlerExceptionがスローされます。
ただし,1.または2.でHTTPリクエストのエンティティボディのMIMEメディアタイプがapplication/fastinfosetまたはapplication/jsonのときは,エラーにならないで正常終了します。
HTTPリクエストおよびHTTPレスポンスの処理中に例外が発生した場合,エラーとなり(KDJJ18888-E),その例外をラップしたClientHandlerExceptionがスローされます。
また,HTTPメソッドの種類によっては次の注意事項があります。