我的eureka中有一个提供者,如下所示:
然后我使用restTemplate
来获取消息,如下所示:
@Autowired
RestTemplate restTemplate;
@RequestMapping("getInfo")
public String getMessage(){
return restTemplate.getForObject("http://microservice_provider/user/getUserInfo", String.class);
}
@LoadBalanced
@Bean
RestTemplate restTemplate()
{
return new RestTemplate();
}
}
但它永远不会奏效。它告诉我:
那么,我能做些什么来成功使用?
答案 0 :(得分:0)
创建一个RestTemplate
bean并使用@LoadBalanced
注释你的bean。
@LoadBalanced
@Bean
public RestTemplate loadBalancedRestTemplate() {
return new RestTemplate();
}
这样,您可以使用微服务microservice_provider
的名称作为网址的一部分。
String remotemsg = restTemplate.getForObject("http://microservice_provider/user/getInfo",String.class);
答案 1 :(得分:0)
在网址"http://microservice_provider"
中,主机名microservice_provider
不是有效的主机名,因为下划线_
在主机名中无效。更改名称,它将起作用。最近有一项修改NPE并带有明确的错误信息。