java.net.BindException: Cannot assign requested address
这个错误如果从没见过,绝对会浪费大家好多时间去查找,而且网上千篇文章都没有一个真正的解决办法!欢迎请大家转载!!
新服务器配置tomcat7.0环境,配置完毕后,无法正常启动。报错如下:shutdown端口看似被占用,但是换成其他端口还是无法启动;
2010-11-1310:16:06org.apache.catalina.core.StandardServerawait
严重:StandardServer.await:create[8001]:
java.net.BindException:Cannotassignrequestedaddress
atjava.net.PlainSocketImpl.socketBind(NativeMethod)
atjava.net.PlainSocketImpl.bind(UnknownSource)
atjava.net.ServerSocket.bind(UnknownSource)
atjava.net.ServerSocket.(UnknownSource)
atorg.apache.catalina.core.StandardServer.await(StandardServer.java:373)
atorg.apache.catalina.startup.Catalina.await(Catalina.java:647)
atorg.apache.catalina.startup.Catalina.start(Catalina.java:607)
atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl.invoke(UnknownSource)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(UnknownSource)
atjava.lang.reflect.Method.invoke(UnknownSource)
atorg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
表面上看是绑定8001端口失败,服务器却只起了一个新的tomcat,换了台刚装好系统的服务器同样操作下正常启动,正常启动下端口绑定的状态如下:
[root@send~]#netstat-ntl
tcp00127.0.0.1:80010.0.0.0:*LISTEN
tcp000.0.0.0:80100.0.0.0:*LISTEN
tcp000.0.0.0:80810.0.0.0:*LISTEN
8081和8010是绑定在0.0.0.0上,由日志可以看到是绑定成功的。8001是绑定到127.0.0.1上,这个绑定操作失败估计是生产机的127.0.0.1的相关配置变动导致。
看了下/etc/hosts内容有改过:
127.0.0.1send.wgk.com
尝试改回默认状态,启动成功:
127.0.0.1localhost.localdomainlocalhost或者改成下面两条:
127.0.0.1localhost.localdomainlocalhost
127.0.0.1http://wgkgood.gicp.net
=====================================
其实说白了就是你肯定动过hosts文件,把里面配置127.0.0.1localhost记录给删了,添加上就可以了