关于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选项,进行勾选,即可使用。

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