有人可以帮助澄清并说明如何正确解决这个问题吗?
到目前为止我所理解的是,当一个方法用@ResponseBody
注释时,Spring框架使用消息转换器将返回的Java对象转换为客户端可以接受的格式。如果客户' HTTP请求Accept Header包含" application / json",它将使用Jackson和Jackson转换器转换对象并以json格式返回它。类似地,如果Accept Header包含" application / xml",则Message Converter将使用Jaxb和相应的转换器将对象转换为xml。
现在我的问题是我在Spring文档中指定了包含Jackson和Jaxb库,以便相应的转换器可以工作。这应该足以让Spring使用@ResponseBody
。但是,当我使用Accept标头" application / xml"发送HTTP请求时我得到一个406状态代码,当我发送一个" application / json"我收到了正确的json回复。
从我的在线研究中,我看到有些人使用ContentNegotiation技术来解决这个问题,但我现在想使用Message Converter。但是,使消息转换器技术响应json和xml资源请求的每种技术都涉及使用JAXB注释格式化我的POJO。这真的有必要吗?
我想我要问的是如何正确设置他们的项目以便Spring可以使用Message Converter技术来响应json和xml请求?必须包含哪些库?是否需要添加JAXB注释,或者Spring是否有一种自动方式将对象格式化为xml,就像它对json一样?
感谢您的时间和帮助,但到目前为止,我真的很喜欢Spring的JAX-RS实现!