java.net.UnknownHostException 未知的名称或服务
原来博客地址:https://blog.csdn.net/wallace1992/article/details/77815647
这两天在做一个项目时用到了dubbo和zookeeper,在安装配置时,虽然是一步一步跟着教程来走的,但还是进了坑
在配置完dubbo启动Tomcat时,第一个问题,提示我:WARN utils.NetUtils - [DUBBO] Failed to retriving ip address, centos: centos1: unknown error, dubbo version: 2.5.4-SNAPSHOT, current host: 127.0.0.1,同时还报了一个java.net.UnknownHostException 未知的名称或服务,我一开始没有头绪,以为是本机IP地址出了问题,没有配置好,心想是不是localhost和127.0.0.1没有对应配置好,根据http://blog.csdn.net/xb12369/article/details/37761537这篇文章,我修改了环境变量,去hosts文件查看了下(都已经找到这儿,却没抓住问题重点!泪奔),发现不是这个问题,
后来我又搜未知主机异常这个问题,根据这个人的文章http://blog.csdn.net/fullbug/article/details/52879731在linux下用hostname命令查看hostname,能够正确返回机器的hostname是centos1,说明主机名正确且没有别名。
接着ping一下这个主机名
[root@centos1 /]# ping centos1
ping: unknown host centos1
发现ping不通,说明主机名没有绑定IP地址。
vi /etc/hosts 添加正确的主机地址
192.168.24.99 centos1
再ping主机可以正常ping通了。
重启网络服务
service network restart
接着再启动dubbo服务,可以正常启动不报Java.NET.UnknownHostException 未知的名称或服务的错
但是此时又报了另外一个错误,显示的是好像端口被占用了,这时我突然想到主机名不对应造成了系统找不到正确的主机,所以按之前的ping的结果,我的主机名是centos1,而环境变量中配置的本地主机名是127.0.0.1 localhost.localhostdomain localhost,所以我要修改一下主机名或者修改一下环境变量后面的localhostdomain,这个确实解决了问题,但再启动又显示StandardServer.await: create[8005]: java.net.BindException: 地址已经在使用,这下我用netstat -apn 查看了一下端口使用情况,发现我配置的tomcat端口已经被占用了,我一开始以为是tomcat已经启动了,就用ps -a查看了一下进程,然后看到并没有tomcat在运行,于是我肯定是端口冲突了,于是又去tomcat下的server.xml文件中修改了port端口号,再启动,还是有地址已经在使用,于是我把tail显示启动过程的进程也杀了,再启动,成功了。
这次的主要问题,我觉得有如下两个问题:
第一,主机的环境变量配置,要对应好,不然系统不识别;
第二,tomcat端口占用了,所以起不来,要修改