【发布时间】:2014-02-04 05:24:20
【问题描述】:
编辑我清理了我相当长的帖子。我将单独发布问题。
请帮助澄清我的疑问。如果需要,我会发布代码。
我使用 spring rest 模板作为带有消息转换器的客户端测试了 Spring Rest 控制器,没有消息转换器,在 classpath 中有 JSON jars,在 classpath 中没有 JSON jars。
每种情况下的行为都不同,这是我之前想澄清的。
我的要求是我需要从客户端发送和获取 XML 作为字符串。将来我们可能需要支持对象。
我用@RequestBody 方法设计了一个简单的控制器,其中一个JAXBObject 作为方法参数,由消息转换器设置,在服务器端将XML 字符串转换为JAXB 对象。
//控制器
@RequestMapping(method=RequestMethod.POST, value="/updatePricePlan" , consumes="application/xml" , produces = "application/xml")
public @ResponseBody ResponseEntity<Employee> updateEmployee( @RequestBody Employee emp ) {
// code
}
我想知道:
- 我的方法将来是否支持对象交换。
- 可以单独使用 JAXB 对象作为 @RequestBody 的一部分发送
- 如果 json jar 位于调用 rest 服务的客户端代码的类路径中,即使我在标头中明确设置了 application/xml,JSON 是否会成为默认格式。
- 对象如何作为@ResponseBody 或@RequestBody 的一部分准确发送。
- 如果客户端期望对象而不是 XML 作为字符串,则服务器端的消息转换器不会将上述示例中的 JAXB 对象转换为 XML 作为字符串并按原样返回对象
- 如果根据我的理解第 5 点为真,对象是否按原样传递给客户端?发送 JAXB 对象而不是 POJO 对象是一种好习惯吗
【问题讨论】:
-
请具体一点,这个问题太长了,没有人会费心阅读你的整个问题。
-
我想知道在使用 spring rest 控制器时对象是如何通过 Http 发送的。我尝试了不同的场景。由于论坛需要代码和我们目前的理解。我给出了我尝试过的场景以及我对每个场景的问题。你能澄清我的疑问吗
-
这是一本小说。我看到那里有 4-5 个问题。可能最好将其分解为单独的问题。
-
很难看一眼
-
我只更新了问题。我为我之前的长篇博文道歉,我认为提供所有信息会让其他人更容易帮助我。