java.net.UnknownHostException 解决方法
今天有位小伙伴来求助,说他们公司用的单点登录,接口URL在公司的公网域名下,如(https://www.csdn.net/xxx/login),他打包好的Web项目在自己机子上跑没问题,一部署到服务器就报 java.net.UnknownHostException 错误,从字面上看是请求目标的服务连不上,网络不通。这到底是怎么回事?又该怎么解决呢?mark一下一般原因:1.服务器没网,调不到公
今天有位小伙伴来求助,说他们公司用的单点登录,接口URL在公司的公网域名下,如(https://www.csdn.net/xxx/login),他打包好的Web项目在自己机子上跑没问题,一部署到服务器就报 java.net.UnknownHostException
错误,从字面上看是请求目标的服务连不上,网络不通。这到底是怎么回事?又该怎么解决呢?mark一下
一般原因:
- 1.服务器没网,调不到公网域名,无法解析出IP,从而无法识别host,导致无法连接;
- 2.网络端口映射做了策略,调用不到自己路由的域名,必须调内网IP;
询问了小伙伴一下,她属于第一种,服务器没网,但她们单点登录服务也在同一个内网,按理应该通的。
那么就清楚了,说明Web服务器没有配置和单点登录服务 域名/IP的映射关系
,所以访问不到,需要在hosts文件中把接口的 IP/域名 写上
,在服务器发送请求时,就会自动把域名转成IP进行调用了。
解决步骤:
下面我将以CSDN的域名为例(www.csdn.net)。注:小伙伴的服务器是Windows,和Linux修改方式基本相同
-
用有互联网的机器 window+r → cmd 进入dos窗口
-
获取www.csdn.net 域名对应的IP,命令:nslookup www.csdn.net
插一句嘴,国内whois网站(如站长之家)都是封装了各种类似命令集成一下而已
-
打开hosts文件, C:\Windows\System32\drivers\etc\hosts (Linux中一般在:/etc/hosts)
-
修改hosts文件,把域名和IP写到hosts文件中,用于域名解析成IP
-
执行:ipconfig /flushdns #清除DNS缓存,刷新
完成,这样你就可以调到CSDN域名下的接口了:如 - https://www.csdn.net/xxx/login
希望你已经解决了这个问题,如果有其他疑惑,评论区等你哦~
更多推荐
所有评论(0)