【发布时间】:2021-06-11 21:01:33
【问题描述】:
我正在调用 rest 模板以从其他微服务获取数据,为此我正在使用交换方法。这是我在调用特定函数时所做的,下面是相同的示例代码。
@Service
public void findUserById()
{
String username = "chathuranga";
String password = "123";
Integer userId = 1;
String url = "http://localhost:8080/users/" + userId;
//setting up the HTTP Basic Authentication header value
String authorizationHeader = "Basic " + DatatypeConverter.printBase64Binary((username + ":" + password).getBytes());
HttpHeaders requestHeaders = new HttpHeaders();
//set up HTTP Basic Authentication Header
requestHeaders.add("Authorization", authorizationHeader);
requestHeaders.add("Accept", MediaType.APPLICATION_JSON_VALUE);
//request entity is created with request headers
HttpEntity<AddUserRequest> requestEntity = new HttpEntity<>(requestHeaders);
ResponseEntity<FindUserResponse> responseEntity = restTemplate.exchange(
url,
HttpMethod.GET,
requestEntity,
FindUserResponse.class
);
// if (responseEntity.getStatusCode() == HttpStatus.OK) {
// System.out.println("response received");
System.out.println(responseEntity.getBody());
//} else {
// System.out.println("error occurred");
// System.out.println(responseEntity.getStatusCode());
//}
}
要处理各种异常代码,例如 500、404,我想制作 resttemplate builder 类,(不是注释代码)为此必须在不同的类中编码,我是 referring this (custom hadler part)
我没有使用 try catch,因为当生产环境中发生多个调用时,这不是一个好方法。 在使用也需要处理的交换功能时,我也遇到了资源访问异常。 现在我不知道应该如何调用此类自定义处理程序来处理像 500 这样的响应。 如果有人可以帮助我提供示例代码,这将非常有帮助,因为我无法测试我的代码,因为到目前为止它还没有被部署用于测试目的
【问题讨论】:
-
你能添加你的自定义错误处理程序吗?
-
@KrzysztofK 我没有那个我正在寻求方向和帮助,如果你能提供动力或有帮助的样本
标签: java spring-boot gradle exception resttemplate