java.net.BindException: Cannot assign requested address

这个错误如果从没见过,绝对会浪费大家好多时间去查找,而且网上千篇文章都没有一个真正的解决办法!欢迎请大家转载!!

新服务器配置tomcat6.0环境,配置完毕后,无法正常启动。报错如下:shutdown 端口看似被占用,但是换成其他端口还是无法启动;

2010-11-13 10:16:06 org.apache.catalina.core.StandardServer await
严重: StandardServer.await: create[8001]:
java.net.BindException: Cannot assign requested address
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(Unknown Source)
        at java.net.ServerSocket.bind(Unknown Source)
        at java.net.ServerSocket.
(Unknown Source)
        at org.apache.catalina.core.StandardServer.await(StandardServer.java:373)
        at org.apache.catalina.startup.Catalina.await(Catalina.java:647)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:607)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

表面上看是绑定8001端口失败,服务器却只起了一个新的tomcat,换了台刚装好系统的服务器同样操作下正常启动,正常启动下端口绑定的状态如下:

[root@send ~]#netstat  -ntl

tcp        0       0 127.0.0.1:8001                  0.0.0.0:*                   LISTEN     
tcp        0       0 0.0.0.0:8010                    0.0.0.0:*                   LISTEN     
tcp        0       0 0.0.0.0:8081                    0.0.0.0:*                   LISTEN  
   

8081和8010是绑定在0.0.0.0上,由日志可以看到是绑定成功的。8001是绑定到127.0.0.1上,这个绑定操作失败估计是生产机的127.0.0.1的相关配置变动导致。

看了下/etc/hosts内容有改过:

127.0.0.1   send.wgk.com


尝试改回默认状态,启动成功:

127.0.0.1       localhost.localdomain localhost 或者改成下面两条:

127.0.0.1      localhost.localdomain localhost

127.0.0.1      send.wgk.com

你可能感兴趣的:(java,apache,tomcat,.net,sun)