当前位置: 首页 > 知识库问答 >
问题:

如何在Java微服务之间进行通信时将RestTemplate转换为String

越涛
2023-03-14

我在这里尝试在两个微服务之间进行通信。我想从另一个微服务中读取写在一个微服务中的消息。我为此使用了RestTemplate。但当我尝试将其转换为字符串时,它不会出现。我正在获得这个‘方法交换(字符串,HttpMethod,HttpEntity<?>,Class,object...)RestTemplate不适用于参数(String,String,null,Class)“

@RequestMapping("/")
public String test(){
String a = restTemplate.exchange("http://localhost:8081/KDSystem/Testpro/pros", HttpMethod.GET,null,String.class).getBody().toString();
return a;
    }

任何关于如何做到这一点的想法都将不胜感激。

共有1个答案

元叶秋
2023-03-14

我建议您使用GetForObject(URI url,类 responseType) 方法:

@RequestMapping("/")
public String test(){
  return restTemplate.getForObject("http://localhost:8081/KDSystem/Testpro/pros", String.class);
}

关于方法Exchange(String,HttpMethod,HttpEntity<?>,Class,Object...)根据异常文本:您正在尝试传递“(String,String,null,Class)”,但第二个参数应该是HttpMethod。

 类似资料:
  • 我目前正在做一个Spring Boot微服务项目。我已经创建了服务,每个服务都是单独运行的。有了这个,我需要一些服务来与其他服务进行通信。我怎样才能做到这一点? 我看到了一些关于这一点的博客,它们使用Netflix、Eureka云服务器来实现这一点。有没有什么方法可以在本地环境中实现这一点,而不使用云服务器?

  • 问题内容: 我的项目结构如下 我试图像这样从模块(即默认模块)导入, 但事实证明。但是我可以在内部实现相同的功能。请注意,我正在同时运行和文件。 问题答案: 部署后,GAE服务/模块不会在其模块目录(文件所在的目录)之外共享 任何内容。 因此,在dir(存在的地方)上方看不到任何东西,因此看不到。但是可以,因为模型位于其目录(存在)中。 如果需要,可以在内部进行符号链接,请参阅在App Engin

  • 我正在构建一个基于Spring云的微服务ML管道。我有一个数据摄取服务,它(当前)从SQL接收数据,这些数据需要被预测服务使用。 普遍的共识是写入应该使用kafka/Rabbitmq使用基于异步消息的通信。 我不确定的是如何编排这些服务? 我是否应该使用API网关来调用启动管道的摄取?

  • “在微服务之间添加的同步依赖关系越多,例如查询请求,客户端应用程序的总体响应时间就越差。 “这是真的吗?我认为在同步通信中,我们比异步通信更直接地得到反馈。例如,假设一个用户向微服务a发送http请求,微服务a又异步地向另一个微服务B发送请求,并异步地等待它的答复。如果微服务B关闭,那么用户将等待到超时才能得到响应,而在同步通信中,他将立即得到响应。

  • 我正在从事 服务项目,主要从服务间通信之间的安全角度提出疑问。在我的项目中,我们有 API 网关,它可以筛选所有传入请求是否存在安全问题,然后再将它们路由到适当的微服务。API 网关位于客户端应用程序和微服务之间。然后,它会限制微服务的公开,同时提供其他请求管理功能,例如身份验证、SSL 终止、协议转换、监视、请求路由、缓存等。 假设案例微服务1(MS1) 部门答案预计在这里。