解决Spring Boot 2.7.16 在服务器显示启动成功无法访问问题:从本地到服务器的部署坑

2023-09-20 20:50:18

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁
🦄 博客首页——猫头虎的博客🎐
🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐
🌊 《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大小厂~💐

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

解决Spring Boot 2.7.16 在服务器显示启动成功无法访问问题:从本地到服务器的部署坑

🐯 猫头虎博主 提示:最近有不少小伙伴反馈 Spring Boot 2.7.16 在服务器上显示启动成功,但实际上无法访问。今天,我们就一起来深入挖掘这个问题,找出背后的原因和解决方法。而且,你知道吗?有时候,仅仅引入一个 spring-boot-starter-webflux 依赖就可能解决你的大问题!


摘要

在本篇文章中,我们将探讨 Spring Boot 2.7.16 版本在服务器上显示启动成功但实际上无法访问的问题。我们会从多个方面进行分析,包括环境差异、外部资源、端口冲突等。同时,我们也会深入研究为什么在某些情况下,添加 spring-boot-starter-webflux 依赖会解决问题。


引言

Spring Boot 被广大开发者称赞为简化 Java Web 开发的神器。但是,就像所有的软件一样,我们有时会遇到意想不到的问题。其中之一就是应用在本地运行完美,但部署到服务器后却遇到问题。那么,这是为什么呢?


正文

异常情况截图:

在这里插入图片描述

添加 spring-boot-starter-webflux 依赖之后正常启动

在这里插入图片描述
注意: 主要区别 不显示 端口号

1. 环境差异 🌟📚🖥️🚀

每个开发环境都有其独特之处,而服务器和本地机器之间的差异可能是问题的根源。例如,不同的 JDK 版本或操作系统设置可能导致应用的行为不同。

java -version

确保服务器上的 Java 版本与本地保持一致。

2. 外部资源的连接问题 🌟📚🖥️🚀

如果你的应用依赖外部资源,如数据库或消息队列,确保这些资源在服务器上是可用的,并且配置正确。

val dataSource = DataSourceBuilder.create()
    .url("jdbc:mysql://your-db-url")
    .username("username")
    .password("password")
    .build()

3. 端口冲突 🌟📚🖥️🚀

默认情况下,Spring Boot 会尝试在 8080 端口启动。使用以下命令检查端口是否已被其他应用占用:

netstat -tuln | grep 8080

4. 必备的依赖 🌟📚🖥️🚀

在某些情况下,您可能需要引入 spring-boot-starter-webflux 依赖。WebFlux 提供了一个响应式 Web 框架,可能会帮助解决某些与 Servlet 容器相关的问题。

implementation("org.springframework.boot:spring-boot-starter-webflux")

总结 🌟📚🖥️🚀

部署应用总是充满挑战,特别是当我们遇到意想不到的问题时。但通过深入研究和理解背后的原因,我们可以找到解决方案。记住,每一个问题都是一个学习的机会!


参考资料 🌟📚🖥️🚀


🐯 猫头虎博主:希望这篇文章能帮助到遇到类似问题的小伙伴。记住,无论遇到什么问题,都不要放弃,持续学习,不断成长!🚀🚀🚀


在这里插入图片描述

原创声明

======= ·

  • 原创作者: 猫头虎

作者wx: [ libin9iOak ]

学习复习

本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。

作者保证信息真实可靠,但不对准确性和完整性承担责任

未经许可,禁止商业用途。

如有疑问或建议,请联系作者。

感谢您的支持与尊重。

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。

更多推荐

Docker网络学习

文章目录Docker容器网络1.Docker为什么需要网络管理2.Docker网络简介3.常见的网络类型4.docker网络管理命令5.两种网络加入差异6.网络讲解dockerBridge网络dockerHost网络dockerContainer网络dockernone网络Docker容器网络1.Docker为什么需要

Redis 面霸篇:从高频问题透视核心原理

Redis为什么这么快?很多人只知道是K/VNoSQl内存数据库,单线程……这都是没有全面理解Redis导致无法继续深问下去。这个问题是基础摸底,我们可以从Redis不同数据类型底层的数据结构实现、完全基于内存、IO多路复用网络模型、线程模型、渐进式rehash…...到底有多快?我们可以先说到底有多快,根据官方数据,

设计模式解析之模板方法模式:设计灵活可扩展的算法框架

目录1.引言2.概要2.1概念2.2结构2.3类图2.4工作流程3.应用场景3.1适用情况:3.2常见例子:4.代码衍化过程初版:甲乙学生都抄试卷第二版:提炼代码第三版:抽象出算法骨架第四版:模板方法变化过程总结及未来展望5.总结1.引言在软件开发中,设计和实现算法是一项常见的任务。然而,随着需求的变化和代码的增长,算

十二、MySql的事务(下)

文章目录一、事务隔离级别(一)如何理解隔离性(二)隔离级别1.读未提交【ReadUncommitted】:2.读提交【ReadCommitted】:3.可重复读【RepeatableRead】:4.串行化【Serializable】:(三)查看与设置隔离性1.查看全局隔离级别2.查看会话(当前)全局隔离级别3.设置全局

C++ - AVL 树 介绍 和 实现 (上篇)

前言之前我介绍了二叉搜索树,可看一下博客:C++-搜索二叉树_chihiro1122的博客-CSDN博客二叉搜索树的效率可以达到O(logn)。这个复杂度的算法的效率是非常恐怖的,2的30次方大概是10亿左右。也就是说如果用暴力查找需要找10亿次,而最好的效率的二叉搜索树只用搜索30次。是非常恐怖的。为什么说是最好效率

如何连接到远程桌面

远程桌面连接是一个非常有用的工具,尤其是当越来越多的人在家工作或使用自己的设备工作时。使用远程桌面连接软件,管理员即使不在您的设备附近,也可以解决问题,他们可以远程访问它并快速解决可能出现的任何问题。什么是远程桌面连接远程桌面连接是一种远程操作电脑的模式,它可以用于可视化访问远程计算机的桌面环境,用于管理员在客户机上对

找不到msvcp140.dll的解决方法,以及msvcp140.dll丢失的原因

在计算机使用过程中,我们可能会遇到无法启动程序的问题,提示找不到msvcp140.dll。这使得许多用户感到困扰,因为msvcp140.dll是MicrosoftVisualC++Redistributable的一个组件,它包含了C++运行时库。这个库对于许多应用程序和游戏来说都是必需的。那么,为什么会出现找不到msv

Spring MVC 请求参数绑定

文章目录默认⽀持ServletAPI作为⽅法参数绑定简单类型参数绑定Pojo类型参数绑定⽇期类型参数(需要配置⾃定义类型转换器)路径变量参数SpringMVC是一个用于构建Web应用程序的框架,它提供了一种方便的方式来处理HTTP请求和响应。在SpringMVC中,请求参数绑定是将HTTP请求中的参数映射到控制器方法的

Spring MVC 请求映射路径的配置,实现前后端交互

目录一、什么是请求映射路径二、SpringMVC的请求参数三、日期类型的参数传递四、SpringMVC如何响应JSON数据一、什么是请求映射路径在SpringMVC中,请求映射路径(RequestMappingPath)是指与特定的请求处理方法关联的URL路径。通过在SpringMVC的控制器类上使用注解(如@Requ

IP代理安全吗?如何防止IP被限制访问?

你是否遇到过可以正常上网,但访问某个网站却被禁止?注册某个网站账号,却被封号?那都是因为IP出现问题!您的IP地址透露很多关于您的信息,包括您的位置和互联网活动。在本文中,我们将一起了解IP地址,网站如何利用它来跟踪您,以及与IP代理如何帮助您更好的推进业务。什么是IP地址?IP地址是互联网协议地址(InternetP

Mock数据:单元测试中的心灵鸡汤

在当今的软件开发领域,质量控制已经成为了一个不可或缺的环节。为了确保软件的稳定性和可靠性,开发者们投入了大量的时间和精力进行各种测试。其中,单元测试作为最基础的测试方法,其重要性不言而喻。然而,单元测试中的一个关键问题是如何获取和管理测试数据。这就是Mock数据发挥作用的地方。本文将为您深入剖析Mock数据的定义、优势

热文推荐