这对我来说是一种nut子。 我的春季简便,只有一份像这样编成的“保守”背景档案:
<context:component-scan base-package="au.com.mypackage.service" />
<context:annotation-config />
<mvc:annotation-driven />
简单控制器:
@Controller
public class MyController {
@RequestMapping(value = "/data/{id}", method=RequestMethod.GET)
@ResponseBody public Bean getData(@PathVariable String id) {
Bean bean = new Bean();
bean.setSomething("hello");
bean.setSomethingElse(5);
return bean;
}
利用电文转换器做这项工作。 然后,我提出“团结倡议”的要求:
GET http://localhost:8080/spring/data/123 HTTP/1.1
Accept-Encoding: gzip,deflate
Accept: application/json
User-Agent: Jakarta Commons-HttpClient/3.1
Host: localhost:8080
看来是工作ok。 当我看一看目录时,我看到控制器被两次传唤。 JSON就是这样。 但是,当我转而要求XML时,那就会产生可怕的错误。 第二项请求(不应发生任何情况)造成Stream因地表关闭而出现大规模错误。
问题的根源是控制者两次发出呼吁。 是否有任何人知道为什么会发生这种情况?