關於java.net.BindException: Address already in use: JVM_Bind的問題

最近開發過程中,遇到了一個問題,在此記錄一下:
啓動多個springboot項目時,控制檯總是打印Address already in use: JVM_Bind的警告,但項目又都是正常運行。剛開始沒在意,反正系統可以用,後來閒來無事,就仔細查看了一番。追蹤控制檯打印的這條警告信息前面的語句,會發現都是在啓用35729端口時出錯。如下圖:
在這裏插入圖片描述
後來百度了一下,35729爲springboot熱部署的的默認端口,原來是每個項目中都使用了熱部署插件,所以,每個項目啓動時都默認會使用35729端口。所以,只有第一個啓動的項目,會成功運行熱部署插件,其餘項目均會出現這個端口啓用失敗的警告。
解決辦法:
在application.propertie文件中配置熱部署的端口,保證每個項目使用的端口不一致即可:
spring.devtools.livereload.port=35730

*注:springboot熱部署即是指在修改後臺代碼時不用頻繁手動重新啓動項目,項目會自行重新啓動。在idea中的使用方法爲:
在pom.xml文件中引入依賴:

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
			<scope>compile</scope>
		</dependency>



 <!--熱部署配置-->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<!--fork :  如果沒有該項配置,肯定devtools不會起作用,即應用不會restart -->
					<fork>true</fork>
				</configuration>
			</plugin>

然後,File --> Settings --> Build , Execution , Deployment --> Compiler --> Build project automatically 勾選 然後保存。保存完成後,CTRL+ALT+SHIFT+/ 組合鍵打開 Maintenance窗口選擇Registry… ,找到compiler.automake.allow.when.app.running選項,進行勾選,即可使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章