錯誤代碼:
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同時運行產生端口衝突的問題