Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use;端口冲突的原理与解决方案

简介: 本文解决了Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use的问题,并通过介绍端口的使用原理和操作系统的端口管理机制,可以更有效地解决端口冲突问题,并确保Web服务器能够顺利启动和运行。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~


作者:watermelo37

涉及领域:Vue、SpingBoot、Docker、LLM、python等

---------------------------------------------------------------------

温柔地对待温柔的人,包容的三观就是最大的温柔。

---------------------------------------------------------------------

image.gif 编辑

Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use

       启动项目发现端口被占用,问题是项目端口就是常用的开发端口(8080系列...)

       报错信息为:

image.gif 编辑

Description:
Veb server failed to start. Port 8082 was already in use
Action:
Identify and stop the process that's listening on port 8082 or configure this application to listen on another port.

image.gif

一、解决办法

1、查找占用端口的进程

  1. 以管理员身份打开命令提示符。
  2. 输入以下命令并按回车:
netstat -aon | findstr :8082

image.gif

       记下输出中的PID(进程ID)

image.gif 编辑

2、结束进程(两种方法)

①在任务管理器中终结指定pid的进程

       在任务管理器中,转到“进程”标签,找到你记下的PID对应的进程,右键点击它,然后选择“结束任务”。

image.gif 编辑

②在命令提示符中结束进程

       将<PID>替换为实际的进程ID。

taskkill /PID <PID> /F

image.gif

3、重新启动项目

       终结占用端口的进程后,重新启动项目即可。

4、对于macOS和Linux系统

       查找进程的指令为:

sudo lsof -i :8082

image.gif

        结束进程的指令为:

sudo kill -9 <PID>

image.gif

        其余步骤一致。

二、博主亲历

       我出现8082端口占用的时候发现是QQ占用了该端口,直接把QQ退出之后重新启动项目后解决。然后再登录QQ也没有冲突,问题解决。

       QQ在运行时需要监听特定的端口以进行网络通信。可能是因为QQ的某个服务或功能需要在这个端口上进行数据传输或接收。当QQ启动时,它会尝试绑定到这个端口,如果该端口未被其他服务使用,QQ就会成功占用该端口进行通信。如果端口8082被QQ占用,而你又需要在这个端口上运行其他服务,就可能会遇到端口冲突的问题。

三、为什么会出现端口冲突的问题

       本质因为多个进程同时需要使用一个端口,造成问题,具体原因要从端口的相关知识入手。

1、端口和监听

       在计算机网络中,端口是用于区分不同服务的逻辑概念。每个端口都有一个唯一的编号,范围从0到65535。Web服务器通常需要监听一个端口,以便能够接收和响应来自客户端(如浏览器)的请求。当你启动一个Web服务器并指定一个端口时,服务器会尝试绑定到该端口并开始监听。

2、端口冲突

       如果一个端口已经被另一个进程绑定和监听,那么其他进程就不能再绑定到同一个端口上。这是为了防止数据混乱和确保每个服务的独立性。当你尝试启动的Web服务器发现指定的端口(在这个例子中是8082)已经被占用时,它会无法启动,并显示错误信息。

3、操作系统的端口管理

       操作系统负责管理所有网络端口的使用情况。当一个进程请求绑定到某个端口时,操作系统会检查该端口是否可用。如果端口已经被占用,操作系统会拒绝新的绑定请求,并返回一个错误。

       这就是为什么会出现该错误的原因了。

四、端口冲突常见的解决方案

1、查找并停止占用端口的进程

       即本文所介绍的方法

2、配置应用程序监听其他端口

       比如SpringBoot中,会在application.properties文件中声明

server.port=8082

image.gif

       又比如在Vue项目中会在vue.config.js文件中添加devServer属性,port属性的值就是端口(后面proxy里面的target不是,那个是后端接口应用程序的端口)

devServer: {
        host: "0.0.0.0",
        port: 8083,
        // 后端接口设置,防止跨域
        proxy: {
            "/api": {
                target: "http://127.0.0.1:8082/",
                ws: true,
                changeOrigin: true,
                pathRewrite: {
                    "^/api": "",
                },
            },
        },
    },

image.gif

       根据开发语言的特性修改即可。

3、使用端口转发或代理

       在某些情况下,你可以使用端口转发或代理服务器来解决端口冲突问题。这样,你可以让代理服务器监听一个端口,然后将流量转发到你的Web服务器监听的端口。

五、总结

       本文解决了Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use的问题,并通过介绍端口的使用原理和操作系统的端口管理机制,可以更有效地解决端口冲突问题,并确保Web服务器能够顺利启动和运行。

        只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

       更多优质内容,请关注:

       你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解

       通过array.filter()实现数组的数据筛选、数据清洗和链式调用

       极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图

       el-table实现动态数据的实时排序,一篇文章讲清楚elementui的表格排序功能

       干货含源码!如何用Java后端操作Docker(命令行篇)

       JavaScript中闭包详解+举例,闭包的各种实践场景:高级技巧与实用指南

       PDF预览:利用vue3-pdf-app实现前端PDF在线展示

       Docker 入门全攻略:安装、操作与常用命令指南

       shpfile转GeoJSON且控制转化精度;如何获取GeoJSON?GeoJson结构详解

       巧用Array.forEach:简化循环与增强代码可读性

       通过array.reduce()实现数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式等

       Mapbox添加行政区矢量图层、分级设色图层、自定义鼠标悬浮框、添加天地图底图等

相关文章
|
2月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
125 7
|
3月前
|
Java 测试技术 Spring
Spring Boot随机端口怎么动态扩容?
在Spring Boot中,可以通过`${random.int(2000,8000)}`在配置文件中设置随机端口,确保每次启动时端口不同。此外,还可以通过检测机制确保生成的随机端口未被占用,避免端口冲突。具体实现包括使用`System.setProperty`设置有效随机端口、自定义属性源以及直接设置`server.port=0`让Spring Boot自动选择空闲端口。推荐使用`server.port=0`以简化配置并避免冲突。
|
4月前
|
网络协议 Ubuntu Linux
解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)
解决 `ssh: connect to host IP port 22: Connection timed out` 报错涉及检查 SSH 服务状态、防火墙配置、网络连通性和主机名解析等多个方面。通过逐步排查上述问题,并在 `scp` 命令中正确指定端口,可以有效解决连接超时的问题,确保文件传输的顺利进行。希望本文提供的解决方案能帮助您快速定位并解决该错误。
949 3
|
4月前
|
运维 网络安全
解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)
通过这些步骤和方法,您可以有效解决“ssh: connect to host IP port 22: Connection timed out”问题,并顺利使用 `scp`命令传输文件。
3176 7
|
5月前
|
安全 Java 应用服务中间件
如何将Spring Boot应用程序运行到自定义端口
如何将Spring Boot应用程序运行到自定义端口
235 0
|
27天前
|
网络协议 安全 应用服务中间件
云服务器怎么开启被关闭的端口?手把手教你开启端口
在使用云服务器时,若发现某些服务无法访问,可能是端口被关闭。本文介绍了端口关闭的原因、检查方法及开启步骤。原因包括初始设置限制、防火墙规则和外部网络策略;可通过netstat或ss命令检查端口状态,用ufw、iptables或firewalld调整防火墙规则。最后提供了解决常见问题的建议,确保端口正常开放并可供外网访问。
299 9
|
2月前
|
SQL 关系型数据库 MySQL
云服务器常用端口作用
了解云服务器常用端口的作用有助于高效管理资源、快速定位问题及更好地使用云服务。常见端口包括:21(FTP,文件传输)、22(SSH,远程连接Linux)、25(SMTP,发送邮件)、80(HTTP,网页服务)、110/143(POP3/IMAP,接收邮件)、443(HTTPS,加密网页)、1433(SQL Server)、3306(MySQL)、3389(RDP,远程访问Windows桌面)和8080(代理服务)。
86 2
|
2月前
|
存储 安全 网络安全
阿里云国际站:阿里云服务器端口配置
悟空云@CloudWuKong阿里云是全球领先的云计算服务提供商,为用户提供弹性计算、数据库、存储、网络安全等一系列云计算服务。在使用阿里云服务器时,合理配置端口非常重要,可以提高服务器安全性和稳定性。
|
9月前
|
弹性计算 应用服务中间件 Linux
阿里云服务器开放端口完整图文教程
笔者近期开发完成的服务端程序部署在阿里云的ECS云服务器上面,一些应用程序配置文件需要设置监听的端口(如Tomcat的8080、443端口等),虽然通过CentOs 7系统的的「防火墙」开放了对应的端口号,任然无法访问端口号对应的应用程序,后面了解到原来还需要设置云服务器的「安全组规则」,开放相应的端口权限,服务端的接口才能真正开放。
928 1
|
9月前
|
弹性计算 运维 数据安全/隐私保护
云服务器 ECS产品使用问题之如何更改服务器的IP地址或端口号
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。

热门文章

最新文章

下一篇
oss创建bucket