LINUX报错系列之《一》----- java.net.UnknownHostException

本文解决了一个在Linux环境下使用getLocalHost()方法时出现的UnknownHostException问题。通过调整/etc/Hostname文件中的主机名配置为内网IP,并重启系统,成功解决了服务从Windows迁移至Linux后的异常。

起因是服务在windows上部署运行ok,转而在linux就炸锅:

 java.net.UnknownHostException: izbp11ht: izbp11ht: System error.........

查看代码发现getLocalHost()方法总是抛异常,该方法为获取本地主机名称以及ip

度娘很多都是说更改linux /etc/hosts文件 添加127.0.0.1 主机名的配置

试了很多次,依然报错

结果在这找到了头绪:https://blog.youkuaiyun.com/m0_37664906/article/details/76977464

在大多数Linux操作系统中,都是以/etc/hosts中的配置查找主机名的,但是 Detian based system用/etc/Hostname文件中的配置做主机名

我不晓得我是不是Detian,但是试了一下更改HostName文件,结果报错信息有变化,有戏!!!

接下来就是重试,HostName中原来的内容是我的主机名:izbp11ht

正确更改为:内网ip(一定得是内网ip)

更改完成之后需要reboot重启一下,切记!

之后方法getLocalHost()木有问题!

### 解决Java中使用RestTemplate时遇到`java.net.UnknownHostException` 当在Java应用程序中使用`RestTemplate`调用远程服务时,如果出现`java.net.UnknownHostException`异常,则表明客户端无法解析目标服务器的域名。这可能是由于DNS配置错误、网络连接问题或缺少必要的Spring Cloud组件来处理服务发现和负载均衡。 对于提到的情况,可以通过以下方式解决问题: #### 添加必要依赖 为了使`@LoadBalanced`注解生效以及让`RestTemplate`能够正确识别由Eureka或其他注册中心管理的服务名称,需确保项目包含了适当版本的Spring Cloud Starter LoadBalancer库[^3]。 ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> ``` #### 配置带有负载平衡功能的RestTemplate Bean 定义个带`@LoadBalanced`标记的bean实例化方法可以使得该模板支持基于逻辑名的服务间通信而不是硬编码URL地址[^2]。 ```java @Configuration public class ApplicationContextConfig { @Bean @LoadBalanced public RestTemplate getRestTemplate(){ return new RestTemplate(); } } ``` #### 设置HTTPS代理主机参数 要为整个JVM进程指定HTTP(S)代理设置,可以在启动命令行上添加相应的系统属性。这对于那些位于防火墙后面或者需要通过特定网关访问外部资源的应用程序特别有用。 例如,在运行应用之前设置环境变量或直接修改启动脚本中的JAVA_OPTS部分加入如下选项即可实现全局范围内的HTTPS流量转发至指定代理服务器[^1]: ```bash -Dhttps.proxyHost=your-proxy-hostname \ -Dhttps.proxyPort=port-number ``` 请注意替换上述占位符(`your-proxy-hostname`, `port-number`)为你实际使用的代理服务器信息。 以上措施应该能有效缓解因未知主机而导致的问题,并允许安全地经由企业内部代理完成对外部API的安全请求操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值