我的服务器中有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中有:
但是当我运行第一个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 -tnao并验证了端口是否可用
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
8080是服务器将在其上运行的端口号。只有一台服务器(您将首先启动)将运行。另一个将抛出Jvm Bind Exception。
因此,更改端口号,使其唯一。
您首先运行服务器,然后使用netstat命令查看正在使用的端口。
netstat