gpt4 book ai didi

RestTemplate ConnectException 无法访问

转载 作者:行者123 更新时间:2023-12-01 13:28:47 24 4
gpt4 key购买 nike

我不明白这一点...我正在 try catch java.net.ConnectException,以防我的下游 API 处于离线状态。但是 Eclipse 警告我它无法访问 - 暗示代码不能抛出 ConnectException 。但是,它显然可以。

@RequestMapping("/product/{id}")
public JsonNode getProduct(@PathVariable("id") int productID, HttpServletResponse oHTTPResponse)
{
RestTemplate oRESTTemplate = new RestTemplate();
ObjectMapper oObjMapper = new ObjectMapper();

JsonNode oResponseRoot = oObjMapper.createObjectNode();

try
{
ResponseEntity<String> oHTTPResponseEntity = oRESTTemplate.getForEntity("http://localhost:9000/product/"+productID, String.class);
}
catch (ConnectException e)
{
System.out.println("ConnectException caught. Downstream dependency is offline");
}
catch (Exception e)
{
System.out.println("Other Exception caught: " + e.getMessage());
}
}

捕获的异常是:
Other Exception caught: I/O error on GET request for "http://localhost:9000/product/9": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect

如果未找到 productID,我的下游将返回 404,如果下游离线,则显然是 ConnectException。我想要做的就是将相关的状态代码传递回浏览器。

我怎么做?

最佳答案

捕获 ResourceAccessException 。它将 ConnectException 隐藏在 RestTemplate 中。

关于RestTemplate ConnectException 无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47052421/

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