luoson1 发表于 2017-2-2 13:23:17

tomcat SEVERE: StandardServer.await: create[8005] : java.net.BindException

两种情况  1:
  tomcat SEVERE: StandardServer.await: create :

  java.net.BindException: Cannot assign requested address

  
  一般是本地机器的hosts文件中localhost指向错了。(windows下C:/Windows/System32/drivers/etc)
  SEVERE: StandardServer.await: create:

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:647)

at org.apache.catalina.startup.Catalina.start(Catalina.java:607)

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:288)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
  
  从日志上看, tomcat是启动了, 但是不能绑定8005端口. 出现Cannot assign requested address的原因是
  localhost被路由到了别的机器.
  

Java代码




[*]pinglocalhost



ping localhost
  
  发现确实被理由到了别的机器.
  
  修改localhost让它重新指向本机 127.0.0.1
  

Java代码




[*]vi/etc/hosts



vi /etc/hosts
  
  删除掉里面关于localhost的转向, 然后增加一行

Java代码




[*]127.0.0.1localhost



127.0.0.1 localhost
  
  重新启动tomcat, 问题解决.
  
  
  
  
  
  
  
  
  2:SEVERE: StandardServer.await: create:

java.net.BindException: Address already in use: JVM_Bind
  说明端口被占用:
  tomcat已经启动,eclipse或者jbuilder中已经启动了或者独立启动了没有退出或者tomcat在开机时是自启动项。
  这时需要打开任务管理器查看一下有没有tomcat进程在运行中即可,有的话干掉即可重新启动。
  其他软件占用了8080端口,可以如下面所示查看端口被那个进程占用了
  C:/>netstat -aon|findstr "8080"

TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 4576

TCP [::]:8080 [::]:0 LISTENING 4576
  C:/>tasklist|findstr "4576"

java.exe 4576 Console 1 39,860 K
  
  我这启动了tomcat所以显示被java.exe占用了。
  这时可以选择停止占用的进程或者修改tomcat服务端口两种方式。
  a、停止对应的进程:在任务管理器中工具栏中-》查看-》选择列中选中PID,在其中找到对应的PID为“4576”的干掉即可
  b、修改tomcat的启动端口:Tomcat服务器的conf目录下的server.xml来更改

  “

<Connector port="8080" maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" />
  ”
  修改其port=“8080”为其他没被占用的端口即可
页: [1]
查看完整版本: tomcat SEVERE: StandardServer.await: create[8005] : java.net.BindException