Tomcat启动报错:StandardServer.await: create[8005] java.net.BindException: Cannot assign requested address
出现这个问题,网上99%都说是端口问题,但是也有几个其他情况。
1.端口被占用
1).如果使用ecplipse和jbuilder里的Tomcat时,遇到像下面这样的问题.严重: StandardServer.await: create[8005]:
java.net.BindException: Address already in use: JVM_Bind其实问题比较简单,1,独立运行的Tomcat没有关闭.自安装的tomcat程序设置开机自动运行,
或者 在之前运行过,先关闭ecplipse或jbuilder,在任务管理器中找到Tomcat的进程,将其kill掉,即可.有时候Tomcat非法关闭时,在进程中,仍然存在,仍然占用8080
端口.所 以只要将其进程杀掉.就可以解决;
查询DOS命令:
netstat -an
2).安装了其他的软件占用了Tomcat的端口.用可以netstat -ano 查看端口的工具查看一下,或者,直接改掉tomcat的默认端口.即可.
结束掉该进程后,Tomcat正常启动。或者到安装目录/conf/下找到server.xml,找到使用8005端口的语句,把端口号改成不在使用的(8006)。
2.localhost被路由到了别的机器
在命令窗口:
ping localhost
发现确实被路由到了别的机器(一个202.x.x.x的IP),打开/etc/hosts发现没有指定127.0.0.1的解析地址。
这下就解决问题了,修改localhost让它重新指向本机地址 127.0.0.1
127.0.0.1 localhost 重启Tomcat就会发现启动正常了。
在服务器领域,一台计算机配置多个IP地址是常见的。tomcat在启动时,会根据配置去获取所有的IP地址,并逐个绑定,当发现需要绑定的IP地址不存在时,会触发上述异常,导致无法正常启动。