Spring RestTemplate:URI 不是绝对的
我正在尝试连接到运行我的webapp的同一服务器上的Spring RESTful服务。
我想使用“相对”路径,因为它可以安装在多个环境(本地主机,测试,生产)上,但我收到错误消息:.URI is not absolute
如何调用在同一服务器上的另一个 Web 应用上运行的服务?
我的代码如下:
final RestTemplate restTemplate = new RestTemplate();
URI uri;
try {
String url = "app2/myservice?par=1";
uri = new URI(url);
String result = restTemplate.getForObject(uri, String.class);
System.out.println(result);
} catch (URISyntaxException e) {
logger.error(e.getMessage());
}
谢谢。
更新:
我通过获取主机,端口等解决了它...从中可以看出,这可能是一个正确而优雅的解决方案吗?这是我实际的简化代码:request
String scheme = request.getScheme();
String userInfo = request.getRemoteUser();
String host = request.getLocalAddr();
int port = request.getLocalPort();
String path = "/app2/myservice";
String query = "par=1";
URI uri = new URI(scheme, userInfo, host, port, path, query, null);
boolean isOK = restTemplate.getForObject(uri, Boolean.class);
if (isOK) {
System.out.println("Is OK");
}