【发布时间】:2018-01-12 22:43:58
【问题描述】:
我遇到了从简单的 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() 的结果是“{}http://test.d”。这当然是错误的并且不起作用。
这是代码:
- 在远程 websphere 服务器 A 和 B 上运行时,结果正确 (http://test.dns)
- 使用 intellij/tomcat 在本地运行 A 和 B 时结果正确
- 当运行 A 本地和 B 远程时,结果正确
- 运行 A 远程和 B 本地时结果正确
- 从远程 A 到远程 B 执行 curl 时,结果正确
有什么想法会导致这种行为吗?
我也尝试使用 apache httpClient 重写 resttemplate 部分,但结果相同。
服务器 A 有 tomcat 7.0.69 和 java 8 服务器 B 有 tomcat 7.0.69 和 java 7 本地和远程
【问题讨论】:
标签: java spring http tomcat request