我天真的理解(可能完全错误)是,无论何时需要将传入请求流转换为POJO
,都需要自定义messageBodyReader
并传输Java POJO
网络为Response
,必须实施自定义messageBodyWriter
。
根据这里的jersey documentation(第7.2.1节),它说
Please note, that this is only a demonstration of how to write a custom entity provider. Jersey already contains default support for entity providers that can serialize JAXB beans into XML.
我不明白这是什么意思?这是否意味着如果使用messageReaders
?
Jersey Framework
有人可以详细说明吗?
由于
答案 0 :(得分:1)
这意味着格式之间存在某种自动转换。当Jersey
实现JAX-RS
- 标准时,您可以使用标准提供的注释
因此,例如,如果您希望您的方法接受XML格式的数据,您只需使用@Consumes(MediaType.APPLICATION_XML)
对其进行注释,Jersey
将尝试自动将消息XML转换为POJO
。我还没有使用过XML,但是我使用了JAX-RS
JSON
,它适用于@Consumes
和@Produces
。
您可能需要使用POJO
之类的XML注释来注释@XmlRootElement
以使其正常工作,但从概念上讲,主要的转换工作是由框架完成的,不需要自定义实现在大多数情况下。
答案 1 :(得分:0)
本文档的特定部分提供了编写将实体转换为xml文档的MessageBodyReader的示例。您引用的摘录说明您不需要编写MessageBodyReader来处理xml,因为Jersey默认提供一个。它们提供了示例,因此您可以编写MessageBodyReader来处理实体流到自定义pojo(MyWonky.class)的转换。