启动多个springboot(tomcat)应用,端口8081冲突

本文讲述了在IntelliJIDEA中调试时遇到Web服务器启动失败,因8081端口被占用的问题。作者发现是由于开启了Tomcat的ManagementServer导致,解决方法是修改ManagementServer的默认端口号。

今天在idea中debug多个应用时报错:

Description:

Web server failed to start. Port 8081 was already in use.

Action:

Identify and stop the process that’s listening on port 8081 or configure this application to listen on another port.

以为是tomcat使用的http端口冲突,检查 server.port 后发现不是这个问题。
最终定位到是因为打开了tomcat的ManagementServer,它默认的端口使用的就是8081;

ManagementServer 配置在这里插入图片描述

解决方法:
将端口号改为其他,每个应用不同即可。
management:
server:
port: 8181

在这里插入图片描述

### 配置 Spring Boot 项目使用 Tomcat Spring Boot 默认使用嵌入式的 Tomcat 容器,这意味着应用可以直接以独立的 JAR 文件运行,而无需部署到外部的 Tom Server。但在某些场景下,例如需要共享多个应用Tomcat 实例或进行远程调试时,可能需要将 Spring Boot 应用部署到外部 Tomcat 服务器上运行。 #### 修改打包方式为 WAR 为了将 Spring Boot 应用部署到外部 Tomcat,需要将项目打包为 WAR 文件。为此,需修改 `pom.xml` 中的打包方式: ```xml <packaging>war</packaging> ``` 同时,确保主类继承 `SpringBootServletInitializer`,并重写 `configure` 方法,以便在外部容器中正确启动 Spring Boot 应用: ```java @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 排除内嵌 Tomcat 依赖 由于外部 Tomcat 提供了 Servlet 容器,需从 `pom.xml` 中排除内嵌的 Tomcat 依赖,以避免冲突: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> ``` #### 配置外部 Tomcat启动参数 在 IntelliJ IDEA 中运行 Spring Boot 项目时,可以通过编辑运行配置来指定使用外部 Tomcat。打开 `Run/Debug Configurations`,选择 `Edit Configurations`,在 `Configuration` 标签下设置 `JVM` 参数,例如远程调试端口: ```bash -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 ``` 确保 Tomcat 的 `catalina.sh` 或 `catalina.bat` 文件中也配置了相应的 JVM 参数,以便在远程调试时能够连接到 Tomcat 实例。 #### 部署与运行 构建项目时使用 Maven 或 Gradle 打包为 WAR 文件: ```bash mvn clean package ``` 将生成的 WAR 文件复制到 Tomcat 的 `webapps` 目录下,并启动 Tomcat 服务应用将在外部 Tomcat 中运行,可以通过访问相应的 URL 来验证部署是否成功。 #### 远程调试配置 在开发过程中,远程调试是排查问题的重要手段。配置远程调试时,需在 Tomcat启动脚本中添加调试参数,并在 IntelliJ IDEA 中创建远程 JVM 调试配置。确保两端的端口号一致,以便建立调试连接。 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值