myeclipse运行tomcat报错:严重: StandardServer.await: create[localhost:8005]: java.net.BindException: Cannot assign requested address: JVM_Bind

报错内容:

严重: StandardServer.await: create[localhost:8005]: 
java.net.BindException: Cannot assign requested address: JVM_Bind
	at java.net.DualStackPlainSocketImpl.bind0(Native Method)
	at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
	at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
	at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
	at java.net.ServerSocket.bind(ServerSocket.java:376)
	at java.net.ServerSocket.<init>(ServerSocket.java:237)
	at org.apache.catalina.core.StandardServer.await(StandardServer.java:427)
	at org.apache.catalina.startup.Catalina.await(Catalina.java:777)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:723)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)

看到这个JVM_Bind,我立马想到是tomcat可能重复开了,然后去tomcat的bin目录关了tomcat,并且myeclipse也重新关闭了tomcat,不过问题还是没解决。

于是在网上搜索关键字Cannot assign requested address,查看很多都是因为端口被占用导致,但也有不是的,其中有一篇是说出现Cannot assign requested address的原因是localhost被路由到了别的机器。

改了端口但是会出现这个问题,所以我怀疑是localhost被路由到了别的机器这个原因。

想到这里,我十分确定是这个问题了。我在cmd命令窗口,输入ping localhost,发现确实被路由到了别的机器(一个10.x.x.xxx的IP),

打开/etc/hosts

原来是我以前添加了一个配置,之前一直都没问题的,想起中午公司把我的网线接到另一个路由器那边了,所以IP地址也变了,所以导致这个问题,

接下来解决问题就很简单了,我把 10.x.x.xxx的IP那一行地址删掉,然后问题就解决了,重新启动tomcat正常。

原文地址:https://www.cnblogs.com/nbkyzms/p/5048412.html