我遇到的情况是我从简单的http请求中收到错误的答案。
在远程tomcat服务器A上我有:
@RequestMapping(value = "/test/dosomething", method = RequestMethod.GET)
public String doSomething() {
RestTemplate rt = new RestTemplate();
ResponseEntity<String> rpe =
rt.getForEntity("http://foo.dns/test/getstring", String.class);
return "redirect:" + rpe.getBody();
}
此方法调用远程tomcat服务器B上的/ test / getstring。
@RequestMapping(value = "/test/getstring", method = RequestMethod.GET)
@ResponseBody
public String getString() {
return "http:///test.dns";
}
运行此命令时,远程服务器A上的rpe.getBody()结果为&#39; {} http://test.d&#39;。这种做法是错误的,不起作用。
这是代码:
任何可能导致此行为的想法?
我也尝试使用apache httpClient重写resttemplate部分,但结果相同。
服务器A具有tomcat 7.0.69和java 8 服务器B有tomcat 7.0.69和java 7 本地和远程
答案 0 :(得分:0)
您在服务器b上使用@ResponseBody,因此它将响应作为json返回
答案 1 :(得分:0)
我最终找到了这种行为的原因。我们使用的框架会将数据写入后台响应中。我们不知道这种行为,而是像往常一样对待控制器方法(使用responsebodyband返回类型)。该框架不需要控制器方法即可返回。因此,将2个响应写入响应。 结论:我讨厌以非透明的方式自行运行的框架。 (该框架是公司以某种方式获得的内部开发框架)