Tomcat启动报错:严重: StandardServer.await: create[8005] java.net.BindException: Cannot assign requested address
org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[8005]:
java.net.BindException: Cannot assign requested address
java.net.BindException: Cannot assign requested address
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:373)
at org.apache.catalina.startup.Catalina.await(Catalina.java:662)
at org.apache.catalina.startup.Catalina.start(Catalina.java:614)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
org.apache.coyote.http11.Http11Protocol pause
出现这个问题,网上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
端口.所 以只要将其进程杀掉.就可以解决
2).安装了其他的软件占用了Tomcat的端口.用可以netstat -ano 查看端口的工具查看一下,或者,直接改掉tomcat的默认端口.即可.
结束掉该进程后,Tomcat正常启动。或者到安装目录/conf/下找到server.xml,找到使用8005端口的语句,把端口号改成不在使用的(8006)。
2.Cannot assign requested address的原因也有可能是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就会发现启动正常了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。