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


一、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"})
    在这里插入图片描述

  • 13
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
你好,关于Docker报错 "Failed to start Docker Application Container Engine",可能有多种原因导致。以下是一些常见的解决方法,请尝试按照以下步骤进行排查和修复: 1. 检查Docker服务是否已启动:在终端或命令提示符中运行以下命令来启动Docker服务(如果尚未启动): - 在Linux上:`sudo service docker start` - 在Windows上:`net start docker` 2. 检查Docker的运行状态:运行以下命令查看Docker的状态: - 在Linux上:`sudo service docker status` - 在Windows上:`docker version` 3. 检查Docker的日志文件:Docker通常会生成日志文件,查看这些日志文件有助于了解错误的具体原因。日志文件的位置取决于您的操作系统: - 在Linux上:`/var/log/docker.log` - 在Windows上:`C:\ProgramData\Docker\logs\docker.log` 4. 检查系统资源:确保系统具有足够的资源(例如内存、磁盘空间)来运行Docker。如果资源不足,可以尝试释放一些资源或增加系统资源。 5. 检查端口冲突:确保Docker所使用的端口没有被其他应用程序占用。您可以尝试更改Docker的默认端口,或者通过终止占用端口的应用程序来解决冲突。 6. 重新安装Docker:如果以上方法都无法解决问题,您可以尝试重新安装Docker。确保您按照官方文档的指导进行操作,并且删除旧版本的Docker,然后重新安装最新版本。 如果您还有其他问题,请提供更多的细节,以便我能够更准确地帮助您解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值