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记录给删了,添加上就可以了

相关推荐