异常描述:
部署服务同时启动两个或多个tomcat一个可以运行,另一个启动到一半自动关闭,查看log中的日志报错如下:
java.net.BindException: Address already in use: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
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:737)
at org.apache.catalina.startup.Catalina.start(Catalina.java:683)
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:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
07-Apr-2021 13:08:44.703 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-apr-8081"]
07-Apr-2021 13:08:44.761 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service Catalina
07-Apr-2021 13:08:44.806 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-apr-8081"]
07-Apr-2021 13:08:44.860 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-apr-8081"]
异常处理:
由于同一个服务器上启动了多个tomcat服务,造成端口占用,故tomcat启动失败。只需要把两个tomcat冲突的端口修改成不一样的端口即可。
可以查看占用的端口:
netstat -ano |findstr "端口号"
使用 kill -9 进程号 杀掉进程
修改conf/server.xml文件里面的设置的端口号