我正在为我的REST Web服务使用Spring@RESTController。我尝试在rest方法中返回ResponseEntity对象的对象,而不是返回ModelAndView的对象。对于Strgin类型的响应,当我用一个Jaxbobject构建ResponseEntity时,它会给出HTTP错误406
@RestController
@RequestMapping(value="/service")
public class MyController {
public @ResponseBody ResponseEntity<String> getDashBoardData() throws JAXBException {
// Some Operation
return new ResponseEntity<String>(myStringXML, responseHeaders, HttpStatus.OK);
}
}
下面不起作用
@RestController
@RequestMapping(value="/service")
public class MyController {
public @ResponseBody ResponseEntity<MyJaxbClass> getDashBoardData() throws JAXBException {
// Some Operation
return new ResponseEntity<MyJaxbClass>(MyJaxbClassObject, HttpStatus.OK);
}
}
< code>@RestController批注已经暗示了所有请求处理方法的< code>@ResponseBody批注,这是它的目的之一(它使您不必将所有这些批注都放在那里)。所以你可以/应该去掉。
处理该方法的返回值是由HandlerMachodRecnValueHandler和应该处理该返回值的特定程序委托给HttpMessageConverter
来完成的。它根据当前请求的请求/支持的响应类型和来自HandlerMachodRecnValueHandler的支持响应类型选择特定的HttpMessageConverter
。
通常当使用< code>@EnableWebMvc
或< code >时
根据响应代码 (406),您要么在服务器端手动配置了错误,要么客户端不支持 xml 作为响应类型。
我想在下面返回JSON。 {“名字”:“杰基”} 新来的春靴在这里。1天大。有没有合适的方法可以做到这一点?
问题内容: 我有一个Spring MVC方法,返回一个。根据检索到的特定数据, 有时 需要将数据流返回给用户。其他时候,它将返回除流之外的其他内容,有时还会返回重定向。我绝对希望它是一个流而不是字节数组,因为它可能很大。 当前,我使用以下代码片段返回流: 不幸的是,这不允许Spring 数据实际填充响应中的HTTP标头。这是有道理的,因为我的代码在Spring接收之前写入了。 某种程度上让Spri
====下面是完整的存储库,如果您希望查看更新后的存储库:https://github.com/kidfrom/g2java/tree/main/etc/mssqlserver 控制器/nameController.java mapper/namemapper.java model/namemodel.java
问题内容: Web服务正在返回由WSDL定义的对象,该对象为: 当我打印出该对象的类信息时,它显示为: 但我需要将此对象解组为以下类的对象: 我知道响应是正确的,因为我知道如何编组此对象的XML: 打印出: 如何将看到的对象变成我知道的对象? 此外,我在AppEngine上运行,该文件访问受到限制。 谢谢你的帮助 更新 : 我添加了注释,如下所示: 但这没有任何区别。 这与内容是的事实有关吗? 这
当在testng单元testcase中运行时,JAXB将XML文件解组到对象中工作正常。 当相同的代码被用来在另一个进程中解封相同的XML文件时,我得到了一个空对象。我可以验证对象是为XML文档中的每个元素创建的,并且所有适配器都被调用。在unmarshaller中设置事件处理程序,但没有验证问题。当我设置xmlns属性和前缀时,即使返回空对象,行为也略有不同。 我看了好几篇文章,但都无法与我面临