ava.net.BindException: Cannot assign requested address


今天遇到这个错误,花了两个小时,做个记号备忘下。

java.net.BindException: Cannot assign requested address

 

 

 

【redhat5.3 Tomcat6.0无法启动】

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

新服务器配置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

 

转自(http://blog.mgcrazy.com/?p=38

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