2.7. 内容划分和提供程序
2.7.1. 默认供应商和默认的 Jakarta RESTful Web 服务内容转换
RESTEasy 可以自动托管和解封几个不同的消息正文。
介质类型 | Java 类型 |
---|---|
| JAXB 标注的类 |
| org.w3c.dom.Document |
* / * | java.lang.String |
* / * | java.io.InputStream |
| 用于输出的原语、java.lang.String 或具有 String 构造器或静态 valueOf(String)方法的任何类型 |
* / * | javax.activation.DataSource |
* / * | java.io.File |
* / * | 字节 |
| javax.ws.rs.core.MultivaluedMap |
2.7.1.1. 文本介质类型和字符集
根据 JAX-RS 规范,在编写响应时,实施必须遵循由应用提供的字符集元数据。如果没有由应用程序指定字符集,或者应用程序指定了不支持的字符集,则实施必须使用 UTF-8 字符集。
相反,根据 HTTP 规范,发件人未提供显式 charset 参数时,将 文本
类型的媒体子类型定义为具有默认的 charset 值 ISO-8859-1
。ISO-8859-1
或其子集以外的字符集中的数据必须使用适当的 charset 值进行标记。
如果没有通过资源或资源方法指定的字符集,RESTEasy 将 UTF-8 用作文本媒体类型的字符集。为此,RESTEasy 会将一个明确的 charset 参数添加到内容类型响应标头中。
要指定原始行为,其中 UTF-8 用于文本介质类型,但未附加显式 charset 参数,请将上下文参数 resteasy.add.charset
设置为 false
。此参数的默认值为 true
。
文本介质类型包括:
-
类型为
文本
和任何子类型的介质类型. -
类型为
application
和子类型(以xml
开头的介质类型)这包括application/xml-external-parsed-entity
和application/xml-dtd
。