小编Jim*_*lor的帖子

RestTemplate ConnectException 无法访问

我不明白这一点...我正在尝试捕获一个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());
    }
}
Run Code Online (Sandbox Code Playgroud)

捕获的异常是:

Other Exception caught: I/O error on GET request for "http://localhost:9000/product/9": Connection refused: connect; …
Run Code Online (Sandbox Code Playgroud)

rest resttemplate spring-boot request-mapping

5
推荐指数
1
解决办法
4646
查看次数

用户数据脚本中的 AWS 公共 IPv4

我需要动态发现实例的 ip4v 地址(在 userdata 脚本执行期间并使用它来替换一些 XML。我已经尝试了以下方法,但它不起作用。大概是因为我们实例时网络不可用运行用户数据脚本?

此外,为了增加复杂性,假设此实例没有外部互联网访问权限(因此建议的其他解决方案curl http://checkip.amazonaws.com/将不起作用)。

sudo sed -i -e "s,<listenaddress address=\",<listenaddress address=\"$(wget -qO- http://instance-data/latest/meta-data/public-ipv4),g" /tmp/my.config.xml

我使用的是默认 Amazon AMI(Amazon Linux AMI 2017.03.1 (HVM),SSD 卷类型 - ami-ed100689)

有任何想法吗?

编辑:完整的用户数据脚本

#!/bin/bash
# This script starts a extra small service with 512MB heap.
# USE ONLY FOR DEMOS
sudo useradd myuser
sudo groupadd myuser
sudo usermod -a -G myuser myuser
sudo yum update -y
sudo yum install java-1.8.0-openjdk wget -y
sudo wget https://files.mysite.com/downloads/service/whatever.jar -P /opt
sudo /usr/bin/java8 -jar /opt/whatever.jar …
Run Code Online (Sandbox Code Playgroud)

sed ipv4 amazon-ec2 amazon-web-services

2
推荐指数
1
解决办法
1883
查看次数