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

news2024/11/19 9:24:50

一、问题

package com.djc.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author JIACHENGER
 * @Description 配置springboot、jenkins、gitlab自动化部署测试项目
 * @since 10/6/2023 3:54 下午
 */


/*
 * 2023-10-6 16:28:13
 * #@RestController是一个合成注解,由@ReponseBody和@Controller合成,具有两个注解的功能。
 * #@ReponseBody:给浏览器返回纯文本。
 *
 * 2023-10-6 16:29:16
 * 关于我们的MyApplication类是 @Rest控制器。这称为刻板印象注释。它为阅读代码的人提供了提示,并为Spring提供了类扮演特定角色的提示。
 * 在这种情况下,我们的类是一个web@Controller,所以Spring在处理传入的web请求时会考虑它。
 *
 *这个@RequestMapping注释提供了“路由”信息。它告诉Spring /路径应映射到home方法 @Rest控制器注释告诉Spring将结果字符串直接返回给调用者。
 *
 *
 * @SpringBootApplication
 * 第二个类级注释是@SpringBootApplication。此注释称为元注解,它结合了@SpringBootConfiguration ,
 * @enableautoconfiguration和@ComponentScan .
 * 其中,我们最感兴趣的注释是@EnableAutoConfiguration .@enableautoconfiguration告诉Spring Boot根据您添加的jar依赖项
 * “猜测”您想要如何配置Springspring-boot-starter-web添加了Tomcat和Spring MVC,自动配置假定您正在开发web应用程序并相应
 * 地设置Spring。
 *
 *
 *
 */
@RestController
@SpringBootApplication
public class MainApplication {
    @RequestMapping("/")
    String home() {
        return "Hello World! 2023-10-6 16:42:14 DJCKING *** ";
    }

    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }

}

在这里插入图片描述

二、解决

2.1 方法1-结束进程对8080端口的占用

参考我这篇文章的命令 Error running ‘Tomcat 8.5.29‘ Address localhost:1099 is already in use

//1-查看端口占用,根据端口号1099,获取PID(进程ID)
netstat -ano | findstr "端口号"


//查看PID对应的进程
tasklist | findstr "进程ID"


//2-根据PID结束进程
taskkill /F /PID PID值
或者

taskkill -f -pid PID值

或者(可能会直接结束intellij IDEA,相当于任务管理器中结束intellij IDEA  2023-10-6 16:56:00 补充)
taskkill  /f /t /im PID值


注意:执行taskkill /F /PID 22096taskkill -f -pid 22096taskkill /f /t /im 22096 可能会直接结束Intellij IDEA应用
在这里插入图片描述

2.2 方法2-更换Tomcat默认端口

SpringBoot 内置了 Tomcat服务器 ,所以不能直接在IDE中配置Tomcat的端口,可以通过配置文件的方式来指定Tomcat的端口。

在项目目录下的src/main/resources中新建application.properties文件,配置Tomcat端口8090

#符号表示注释
#application.properties配置文件中指定Tomcat端口,解决8080 端口占用问题
#application.properties与application.yml两个配置文件二选一
server.port=8090

运行结果
在这里插入图片描述
在这里插入图片描述

或者

在项目目录下的src/main/resources中新建application.yml文件,配置配置Tomcat端口8091

#符号表示注释
#application.yml与application.properties两个配置文件二选一
#Tomcat
server:
  port: 8091

运行结果
在这里插入图片描述
在这里插入图片描述

三、代码中设置端口

setDefaultProperties()方法将server.port设置为8010。接受一个Map类型键值对参数,其中key属性名value属性值

关键设置端口代码:

 //通过代码设置端口  2023-10-6 23:25:24
        SpringApplication sapp = new SpringApplication(MainApplication.class);
        sapp.setDefaultProperties(Collections.singletonMap("server.port", "8010"));
        sapp.run(args);

完整代码:

package com.djc.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Collections;

/**
 * @author JIACHENGER
 * @Description 配置springboot、jenkins、gitlab自动化部署测试项目
 * @since 10/6/2023 3:54 下午
 */


/*
 * 2023-10-6 16:28:13
 * #@RestController是一个合成注解,由@ReponseBody和@Controller合成,具有两个注解的功能。
 * #@ReponseBody:给浏览器返回纯文本。
 *
 * 2023-10-6 16:29:16
 * 关于我们的MyApplication类是 @Rest控制器。这称为刻板印象注释。它为阅读代码的人提供了提示,并为Spring提供了类扮演特定角色的提示。
 * 在这种情况下,我们的类是一个web@Controller,所以Spring在处理传入的web请求时会考虑它。
 *
 *这个@RequestMapping注释提供了“路由”信息。它告诉Spring /路径应映射到home方法 @Rest控制器注释告诉Spring将结果字符串直接返回给调用者。
 *
 *
 * @SpringBootApplication
 * 第二个类级注释是@SpringBootApplication。此注释称为元注解,它结合了@SpringBootConfiguration ,
 * @enableautoconfiguration和@ComponentScan .
 * 其中,我们最感兴趣的注释是@EnableAutoConfiguration .@enableautoconfiguration告诉Spring Boot根据您添加的jar依赖项
 * “猜测”您想要如何配置Springspring-boot-starter-web添加了Tomcat和Spring MVC,自动配置假定您正在开发web应用程序并相应
 * 地设置Spring。
 *
 *
 *
 */
@RestController
@SpringBootApplication
public class MainApplication extends SpringBootServletInitializer {
    @RequestMapping("/")
    String home() {
        return "Hello World! 2023-10-6 16:42:14 DJCKING *** ";
    }

    public static void main(String[] args) {

        //SpringApplication.run(MainApplication.class, args);

        //通过代码设置端口  2023-10-6 23:25:24
        SpringApplication sapp = new SpringApplication(MainApplication.class);
        sapp.setDefaultProperties(Collections.singletonMap("server.port", "8010"));
        sapp.run(args);


    }

}


运行结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、docker部署

如果将项目部署在Docker容器中,需要Dockerfile中设置EXPOSE指令以指定端口。
如下网关服务-gateway.jar

# 基础镜像
FROM  anapsix/alpine-java:8_server-jre_unlimited
# author
MAINTAINER djc

# 挂载目录
VOLUME /home/ruoyi202381

# 创建目录
RUN mkdir -p /home/ruoyi202381

# 指定路径  指定工作目录
WORKDIR /home/ruoyi202381

# 复制jar文件到路径
COPY ./jar/gateway.jar /home/ruoyi202381/gateway.jar


# 暴露端口  2023-9-29 00:02:07
#  EXPOSE  端口号  例如:EXPOSE  8104
EXPOSE  8096

# 启动用户服务    网关服务
ENTRYPOINT ["java","-jar","gateway.jar"]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1066094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

几个G视频能压缩成几百MB吗?跟我学视频压缩

视频大小是可以压缩的,现在很多情况下,视频文件的大小都会限制我们的行动,例如需要将大量视频文件随身携带,或者在有限的网络带宽下传输视频文件。为了解决这些问题,下面给大家分享几个视频压缩的技巧,轻松…

6-8 求链表的倒数第m个元素 分数 15

ElementType Find(List L, int m) {int count 0;for (struct Node* cur L; cur ! NULL; cur cur->Next){count;}if (m > count) {return ERROR;}int n count - m 1;struct Node* cur L;while(--n)cur cur->Next;return cur->Data; }

鹿客携手小度、天翼数字生活等生态伙伴,开启全联接Opening计划

物联网、AI等新一代信息技术的飞速发展,各类家居家电智能水平与日俱增。作为智能家居入口级产品,智能门锁行业技术也在不断内卷,从密码解锁,到指纹识别、人脸识别、生物识别,不断升级。寻求更安全、更便捷、更智能的新…

Android之App跳转其他软件

文章目录 前言一、效果图二、实现步骤1.弹框xml(自己替换图标)2.弹框utils3.两个弹框动画4.封装方便调用5.调用6.长按事件方法7.跳转步骤8.复制utils 总结 前言 最近遇到一个需求,就是App内大面积需要长按复制并跳转指定App,没办法,只能埋头…

微信CRM系统:微商不可或缺的客户管理利器!

在这个竞争激烈的时代,微信客户已成为微商生存和发展的关键。如何更好地了解客户需求,提高客户满意度和忠诚度,已成为微商们亟待解决的问题。而解决这些问题,关键在于个微是否有一套完善的客户关系管理(CRM&#xff09…

9.变换之平移

愿你出走半生,归来仍是少年 通过顶点着色器实现图形的整体平移。 1.知识点 1.1.齐次坐标 在GLSL 中Vec4进行坐标表达时,作为齐次坐标(x,y,z,w).当w1时,这个vec4可以表达一个点的三维坐标。在进行平移时,应保证偏移量的W为0。 1.2矢量相加运…

【Vue面试题三】、Vue中的v-show 和 v-if 怎么理解 ?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:v-show和v-if有什么区别…

Linux防火墙之--SNAT和DNAT

1.SNAT是什么 SNAT又称源地址转换。源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用保留ip地址的主机访问外部网络,即内网的多…

VR模拟鸡胚培养接种实验,打造沉浸式的学习环境

在医学教育领域,传统的鸡胚接种实验一直是教学的重要组成部分。然而,这种实验方法存在一定的局限性,如操作难度大、成本高、安全隐患等。为了解决这些问题,越来越多的教育机构开始尝试引入虚拟现实(VR)技术,以模拟鸡胚…

Safran与是德科技合作推出基于GNSS技术的5G LBS方案

概述 虹科Safran与是德科技(Keysight)联手推进基于全球导航卫星系统(GNSS)技术的5G定位服务(LBS),利用虹科Safran先进的全球导航卫星系统(GNSS)仿真功能扩展是德科技的5G…

成为黄金代理,必须考虑到这一点

目前很多投资者都会选择黄金代理进行现货黄金投资账户的开立。一方面是市场中各种各样的现货黄金代理,越来越专业,提供的交易服务越来越好,另一方面是黄金代理和黄金平台进行合作,如果平台选得好,投资者在平台开户还是…

深入探究 C++ 编程中的资源泄漏问题

目录 1、GDI对象泄漏 1.1、何为GDI资源泄漏? 1.2、使用GDIView工具排查GDI对象泄漏 1.3、有时可能需要结合其他方法去排查 1.4、如何保证没有GDI对象泄漏? 2、进程句柄泄漏 2.1、何为进程句柄泄漏? 2.2、创建线程时的线程句柄泄漏 …

Android Studio 是如何和我们的手机共享剪贴板的

背景 近期完成了target33的项目适配升级,随着AGP和gradle的版本升级,万年老版本Android Studio(后文简称AS)也顺便升级到了最新版Android Studio Giraffe | 2022.3.1,除了新UI外,最让我好奇的是这次的Running Devices功能(官方也称为Device mirroring)可以控制真机了. 按照操…

静态住宅代理的优缺点以及使用方法

住宅代理ip分为静态住宅代理和动态住宅代理,住宅代理就是代理ip是真人网络中出发,以代理地址来对目标网站进行访问,具有高匿名度和安全性,在跨境业务中经常使用。而静态住宅代理的特征就是ip地址长时间固定不变,具有唯…

DevEco Studio下载/安装与配置开发环境

一、下载与安装DevEco Studio 在HarmonyOS应用开发学习之前,需要进行一些准备工作,首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。 1.进入DevEco Studio下载官网 单击“立即下载”进入下载页面。 DevEco Studio提供了Windows版本和Mac…

html2Canvas截图中特殊字体出不来原因

项目中有正常字体和特殊字体,但是导出成图片时特殊字体无法正常显示 下图为导出的截图: 原因: 特殊字体的名称定义 因为之前特殊字体的font-family,是以数字开头,放在html中被转义了,所以一直出不来,前面改成英文后可以正常显示

让丢失成为过去,尽在我们的智能防丢器

我们都知道,生活中总会遇到一些小烦恼,比如钥匙不见了,钱包忘在哪里,甚至手机掉在了不知名的地方,这些看似小事,却足以打乱我们的日程。那么,有没有一种方法,可以让这些烦恼一扫而空…

Ubuntu 2204 搭建 nextcloud 个人网盘

Nextcloud是一套用于创建网络硬盘/云盘以存放文件的客户端-服务器软件,Nextcloud 完全开源并且免费。 一、搭建 ubuntu apache2 mysql php (lamp)环境 因为 nextcloud 服务是使用 php 语言和 mysql 数据库的web服务,因此需要…

【一周安全资讯1007】多项信息安全国家标准10月1日起实施;GitLab发布紧急安全补丁修复高危漏洞

要闻速览 1.以下信息安全国家标准10月1日起实施 2.GitLab发布紧急安全补丁修复高危漏洞 3.主流显卡全中招!GPU.zip侧信道攻击可泄漏敏感数据 4.MOVEit漏洞导致美国900所院校学生信息发生大规模泄露 5.法国太空和国防供应商Exail遭黑客攻击,泄露大量敏感…

Safran与是德科技合作为蔚来提供电动汽车中的5G和C-V2X连接测试

概述 虹科Safran GNSS模拟器助力是德科技(Keysight)为中国顶级电动汽车制造商之一——蔚来汽车(NIO)提供了业界领先的UXM 5G测试解决方案以验证5G和C-V2X的连接性,能够根据3GPP和其他标准组织定义的最新5G新无线电&am…