tomcat:java.net.bindexception:地址已在使用中:jvm\u bind

smdnsysy  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(404)

我在windows10上下载了tomcat 8.5
我转到conf文件夹并运行 startup.bat 剧本
几秒钟后,tomcat停止了。在日志中我可以看到:

09-Jun-2021 21:52:01.433 INFOS [main] org.apache.coyote.AbstractProtocol.start Démarrage du gestionnaire de protocole ["http-nio-8088"]
09-Jun-2021 21:52:01.484 INFOS [main] org.apache.catalina.startup.Catalina.start Server startup in 748 ms
09-Jun-2021 21:52:01.491 GRAVE [main] org.apache.catalina.core.StandardServer.await StandardServer.await: create[localhost:8005]: 
    java.net.BindException: Address already in use: JVM_Bind
        at java.net.DualStackPlainSocketImpl.bind0(Native Method)
        at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:102)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:513)
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:180)
        at java.net.ServerSocket.bind(ServerSocket.java:375)
        at java.net.ServerSocket.<init>(ServerSocket.java:237)
        at org.apache.catalina.core.StandardServer.await(StandardServer.java:421)
        at org.apache.catalina.startup.Catalina.await(Catalina.java:776)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:722)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)

我知道我可以换个港口 server.xml 文件(我做了)。我的问题是,无论我选择哪个端口(8081、8082、8083等),我总是会遇到以下错误:

java.net.BindException: Address already in use: JVM_Bind

怎么了?这是我公司的一台电脑,有什么服务、代理阻止我运行tomcat吗?
我选择的端口是免费的。在尝试使用空闲端口(例如8087)启动tomcat之后,我在命令行上得到了以下结果:

C:\tools\apache-tomcat-8.5.66\bin>netstat -ano | find "8087"
  TCP    [fd5e:b41f:967b:1007:eca0:11ba:a1c9:bbbf]:58009  [fd5e:b41f:967b:1007:eca0:11ba:a1c9:bbbf]:8087  TIME_WAIT       0
xlpyo6sf

xlpyo6sf1#

失败的原因不是http连接器侦听的端口,而是“关机”端口(通常为 8005 ),这已被采用。
您可以使用 port 属性 <Server> 要素:

<Server port="8005" shutdown="SHUTDOWN">
...
</Server>

在大多数情况下,将该值设置为,禁用它是安全的 -1 . 这也将消除安全威胁:攻击者可以通过发送字符来关闭服务器 SHUTDOWN 移植 8005 .

相关问题