原來博客地址: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端口占用了,所以起不來,要修改