一尘不染

java.net.BindException:已使用的地址:JVM_Bind

tomcat

我的服务器中有2个运行的tomcat

一个是Tomcat 7,另一个是tomcat 8,第一个的配置文件server.xml是:

           <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
             ...
           <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

在第二个tomcat中有:

            <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443" />
            ...
            <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

但是当我运行第一个tomcat时,控制台说

java.net.BindException: Address already in use: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(Unknown Source)
at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:420)
at org.apache.catalina.startup.Catalina.await(Catalina.java:713)
at org.apache.catalina.startup.Catalina.start(Catalina.java:659)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

但是第二次运行良好,我使用命令netstate -t​​nao并验证了端口是否可用


阅读 241

收藏
2020-06-16

共1个答案

一尘不染

<Connector port="8080" protocol="HTTP/1.1"
       connectionTimeout="20000"
       redirectPort="8443" />

8080是服务器将在其上运行的端口号。只有一台服务器(您将首先启动)将运行。另一个将抛出Jvm Bind Exception。

因此,更改端口号,使其唯一。

您首先运行服务器,然后使用netstat命令查看正在使用的端口。

2020-06-16