gpt4 book ai didi

java - RestTemplate 响应中始终出现错误消息 "null"

转载 作者:行者123 更新时间:2023-12-01 16:18:56 28 4
gpt4 key购买 nike

我快疯了。我有 2 台服务器,一台是幕后的微服务,一台是调用它的主服务器。

在微服务中,我抛出一个异常,定义如下:

@ResponseStatus(HttpStatus.SERVICE_UNAVAILABLE)
public class CGTokenException extends Exception{

// private String msg;

public CGTokenException() { super("Unknown error getting token / Validating card!"); }

public CGTokenException(String msg) {super(msg); }
}

在我的主服务器中,我这样使用它:

   @Override
public
GetPaymentTokenResponse getToken(GetPaymentTokenRequest getPaymentTokenRequest, String url) {

try {
String fullPath = url + "/Token/getPaymentToken";
return this.restTemplate.postForObject(fullPath, getPaymentTokenRequest , GetPaymentTokenResponse.class);
}
catch (Exception ex) {
log.error("Error getting TOKEN / validating card from Credit Guard");
log.error( "CGTokenController error: " + ex.getMessage() );

ex.printStackTrace();
}
}

从微服务内部我只是做抛出新的CGTOkenException(msg);

由于某种原因,在我的主服务记录器中,我得到了“503 null”的日志,就像这是抛出的错误中的消息(来自行 log.error( "CGTokenController error: "+ ex.getMessage() );).

但是,如果我直接向我的微服务发送 postman 请求 - 我会收到完整的错误,其中包含正确的消息。

我做错了什么?我想问题是我如何在我的主要服务中捕获它......但我只是找不到它是什么。如何传递正确的错误消息以传播到主服务?

最佳答案

您需要捕获正确的异常或强制转换它。

try {
String fullPath = url + "/Token/getPaymentToken";
return this.restTemplate.postForObject(fullPath, getPaymentTokenRequest , GetPaymentTokenResponse.class);
}
catch(HttpClientErrorException hcee) {
if (hcee.getRawStatusCode() == 503) {
...
}
}

关于java - RestTemplate 响应中始终出现错误消息 "null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62323294/

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