gpt4 book ai didi

java - Spring RestTemplate : URI is not absolute

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:33:37 25 4
gpt4 key购买 nike

我正在尝试连接到运行我的 web 应用程序的同一台服务器上的 Spring RESTful 服务

我想使用“相对”路径,因为它可以安装在多个环境(本地主机、测试、生产)上,但我收到错误消息:URI is not absolute .

如何调用在同一台服务器上的另一个网络应用程序上运行的服务?

我的代码如下:

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");
}

最佳答案

如果您的服务在另一个网络应用程序或同一台服务器上运行,您的 URL app2/myservice?par=1 是不完整的。

您必须通过提供基本 URL 方式来完成路径 localhost:8080/yourApp/app2/myservice?par=1 然后这些东西可能适合您。

此外,检查包访问权限。

关于java - Spring RestTemplate : URI is not absolute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45328058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com