错误代码:
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:376)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:42
解决方案:
当装了两个tomcat时(之前由于solr使用需要新装的tomcat)需要修改tomcat安装路径下的端口号设置。在tomcat的conf目录下找到server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
将port="8080"改为其它的值就可以了。如port="8090"等.重启tomcat后就可以使用新端口号了。这时只启动一个tomcat是没问题的
但有时需要两个或多个tomcat同时运行,那么除了上述修改,还要另外修改两处端口号,如下:
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
将上面的8005和8009分别改成其他端口,比如8015和8019。
修改这三个端口后后,可以解决tomacat同时运行产生端口冲突的问题