草庐IT

APPLICATION FAILED TO START 异常报错原因及解决方案

李三岁~ 2024-02-11 原文

文章目录


一、APPLICATION FAILED TO START 异常报错原因分析

1. 异常报错描述:

APPLICATION FAILED TO START 应用程序无法启动/应用程序启动失败

这个错误提示只是告诉了我们应用程序启动失败,可能造成的原因很多,而仅仅只是这个提示无法告诉我们具体的原因,我们需要根据具体的原因进行具体的分析。

二、端口号被占用(Port 8080 was already in use) 导致的 APPLICATION FAILED TO START

1. 详细描述:

1.1 详细描述1(对应案例1):

Description:

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

2. 异常报错信息案例:

2.1 案例1:

2.1.1 异常错误描述:

错误原因:端口号 8080 被占用 导致的应用程序启动失败

2.1.2 解决方案:

  1. 关闭对应端口号的应用程序(服务)
  2. 修改要启动项目的端口号
    此项目应该为 SpringBoot 项目,可以通过修改配置文件的方式修改该项目的端口号
    • application.properties
      server.port=8090
      
    • application.yml
      server:
        port: 9000
      

三、Mybatis 导致的 APPLICATION FAILED TO START

1. 详细描述:

1.1 详细描述1(对应案例1):

Description:

Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.

2. 异常报错信息案例:

2.1 案例1:

2.1.1 异常错误描述:

错误原因:数据源没有配置导致的应用程序启动失败

2.1.2 解决方案(一):

解决思路:这里,我们只需要检查我们的配置文件是否添加了正确的数据源信息

  • application.properties(创建项目默认)

    spring.datasource.url=jdbc:mysql://localhost:3306/demo_admin?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
    spring.datasource.username=root
    spring.datasource.password=root
    
  • application.yml

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/demo_admin?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
        username: root
        password: root
    

2.1.3 解决方案(二):

当然如果我们不需要使用这个配置源,我们也可以忽略/排除这个数据源
我们可以在 SpringBoot 项目的启动类上添加 exclude 属性

// exclude= {DataSourceAutoConfiguration.class} 忽略数据源的自动配置
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
public class MallOssApplication {
    public static void main(String[] args) {SpringApplication.run(MallOssApplication.class, args);}
}

四、Knife4J 导致的 APPLICATION FAILED TO START

1. 详细描述:

1.1 详细描述1(对应案例1):

Description:

Field openApiExtensionResolver in cn.cy.config.Knife4jConfiguration required a bean of type ‘com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver’ that could not be found.

1.2 详细描述2(对应案例2):

Description:

Parameter 0 of constructor in com.github.xiaoymin.knife4j.spring.plugin.DynamicResponseModelReader required a bean of type ‘springfox.documentation.schema.TypeNameExtractor’ that could not be found.

2. 异常报错信息案例:

2.1 案例1:

2.1.1 异常错误描述:

错误原因:类 Knif4jConfiguration 中的 openApiExtensionResolver 属性没有被注入

2.1.2 解决方案:

解决思路:这里,我们只需要检查我们的配置文件是否添加了正确的 knif4j 配置

  • application.properties(创建项目默认)

    knife4j.enable=true
    
  • application.yml

    #开启Knife4j的增强模式
    knife4j:
      enable: true
    

2.2 案例2:

2.2.1 异常错误描述:

错误原因:类 DynamicResponseModelReader 因为没有无参构造方法所以没有被注入

2.2.2 解决方案:

解决思路:这里,我们只需要检查我们的配置类中是否添加了 @EnableSwagger2WebMvc 注解,或者检查是否添加了 @ComponentScan({"springfox.documentation.schema"})

  • 解决方案一:添加 @EnableSwagger2WebMvc 注解

  • 解决方案二:添加 @ComponentScan({"springfox.documentation.schema"})

有关APPLICATION FAILED TO START 异常报错原因及解决方案的更多相关文章

  1. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  2. ruby-on-rails - Rails - 乐观锁定总是触发 StaleObjectError 异常 - 2

    我正在学习Rails,并阅读了关于乐观锁的内容。我已将类型为integer的lock_version列添加到我的articles表中。但现在每当我第一次尝试更新记录时,我都会收到StaleObjectError异常。这是我的迁移:classAddLockVersionToArticle当我尝试通过Rails控制台更新文章时:article=Article.first=>#我这样做:article.title="newtitle"article.save我明白了:(0.3ms)begintransaction(0.3ms)UPDATE"articles"SET"title"='dwdwd

  3. ruby - #之间? Cooper 的 *Beginning Ruby* 中的错误或异常 - 2

    在Cooper的书BeginningRuby中,第166页有一个我无法重现的示例。classSongincludeComparableattr_accessor:lengthdef(other)@lengthother.lengthenddefinitialize(song_name,length)@song_name=song_name@length=lengthendenda=Song.new('Rockaroundtheclock',143)b=Song.new('BohemianRhapsody',544)c=Song.new('MinuteWaltz',60)a.betwee

  4. ruby - 在 Ruby 中重新分配常量时抛出异常? - 2

    我早就知道Ruby中的“常量”(即大写的变量名)不是真正常量。与其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。(侧边栏:Ruby确实具有“卡住”引用对象不被修改的功能,据我所知,许多其他语言都没有提供这种功能。)所以这是我的问题:当您将一个值重新分配给常量时,您会收到如下警告:>>FOO='bar'=>"bar">>FOO='baz'(irb):2:warning:alreadyinitializedconstantFOO=>"baz"有没有办法强制Ruby抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。 最佳答案

  5. 屏幕录制为什么没声音?检查这2项,轻松解决 - 2

    相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声

  6. 【高数】用拉格朗日中值定理解决极限问题 - 2

    首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有,  也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加

  7. SPI接收数据异常问题总结 - 2

    SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手

  8. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  9. ruby - 如何捕获 ruby​​ 中的所有异常? - 2

    我们如何捕获或/和处理ruby​​中所有未处理的异常?例如,这样做的动机可能是将某种异常记录到不同的文件或发送电子邮件给系统管理。在Java中我们会做Thread.setDefaultUncaughtExceptionHandler(UncaughtExceptionHandlerex);在Node.js中process.on('uncaughtException',function(error){/*code*/});在PHP中register_shutdown_function('errorHandler');functionerrorHandler(){$error=error_

  10. Ruby 守护进程和 JRuby - 备选方案 - 2

    我有一个应用程序正在从Ruby迁移到JRuby(由于需要通过Java提供更好的Web服务安全支持)。我使用的gem之一是daemons创建后台作业。问题在于它使用fork+exec来创建后台进程,但这对JRuby来说是禁忌。那么-是否有用于创建后台作业的替代gem/wrapper?我目前的想法是只从shell脚本调用rake并让rake任务永远运行......提前致谢,克里斯。更新我们目前正在使用几个与Java线程相关的包装器,即https://github.com/jmettraux/rufus-scheduler和https://github.com/philostler/acts

随机推荐