新手小白idea异常报错集合

本文分析了APPLICATIONFAILEDTOSTART异常的原因及解决方案,包括端口冲突、Mybatis配置错误、Knife4J配置问题及Mybatis绑定异常等,并提供了详细的排查与修复步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


1. 异常报错描述:


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

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

2、端口号被占用(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 解决方案:
关闭对应端口号的应用程序(服务)
找到启动对应端口号的项目,直接关闭(如果找不到,可使用下面链接的解决办法)
https://blog.youkuaiyun.com/weixin_46030002/article/details/126649348
修改要启动项目的端口号
此项目应该为 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"})

 在这里插入图片描述

 


文章知识点与官方知识档案匹配,可进一步学习相关知识


二:org.apache.ibatis.binding.BindingException 异常报错原因及解决方案

一、BindingException 异常报错原因分析及解决方案
1. 异常报错描述:
BindingException 绑定异常(mybatis框架提供的异常)

这个错误提示只是告诉了我们绑定异常,可能造成的原因很多,而仅仅只是这个提示无法告诉我们具体的原因,我们需要根据具体的原因进行具体的分析。

1.1 详细描述1:
org.apache.ibatis.binding.BindingException: Invalid bound statement
(not found): xx.xx.xx.mapper.xxMapper.xx

2. 异常报错信息案例:
2.1 案例1:

请添加图片描述
2.1.1 异常错误描述:
错误原因:无效的绑定语句(未找到):cn.cy.demo.mapper.UserMapper.getAllUser;持久层方法未能找到对应的映射文件中的SQL语句

2.1.2 解决方案:
解决思路:
1)这里,我们需要先检查我们的配置文件是否添加了mybatis.mapper-locations,并且是否添加正确请添加图片描述

 

2.2 案例2:

在这里插入图片描述
2.2.1 异常错误描述:
错误原因:无效的绑定语句(未找到):cn.tedu.boot08.mapper.ProductMapper.insert;持久层方法未能找到对应的映射文件中的SQL语句

 

2.2.2 解决方案:
解决思路:
1)这里,我们需要检查 ProductMapper.xml 中 namesppace 路径是否正确,需要与 持久层接口 的路径保持一致在这里插入图片描述

 

2.3 案例3:

在这里插入图片描述
2.2.1 异常错误描述:
错误原因:无效的绑定语句(未找到):cn.tedu.boot08.mapper.ProductMapper.insert;持久层方法未能找到对应的映射文件中的SQL语句

 

2.2.2 解决方案:
解决思路:
1)这里,我们需要检查持久层 ProductMapperl.java 接口中的方法名称,如案例中的 insert 方法,是否与 ProductMapperl.xml 中绑定的方法 id 属性值是否一致在这里插入图片描述

 三:Mapped Statements collection already contains value for ... 报错原因及解决办法

一、Mapped Statements collection already contains value for…
1. 异常报错描述:
Mapped Statements collection already contains value for …
mapped 中执行SQL语句的Statements 对象的集合存在重复的值,存在于…(java.lang.IllegalArgumentException)在这里插入图片描述

 

1.1 详细描述1:
Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.tedu.csmall.product.mapper.AlbumMapper.insert. please check file [xxx\xxx…\target\classes\mapper\AlbumMapper.xml]

mapped 中执行SQL语句的Statements 对象的集合存在重复的值,存在于 cn.tedu.csmall.product.mapper.AlbumMapper.insert 中,请检查文件 xxx\xxx...\target\classes\mapper\AlbumMapper.xml

2. 异常报错信息案例:
2.1 案例1:

在这里插入图片描述
2.1.1 异常错误描述:
错误原因:Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.tedu.boot08.mapper.MyProductMapper.insert. please check file [F:\JavaProjects\clone\JSD2207\t-jsd-03\boot08\target\classes\mappers\MyProductMapper.xml] and file [F:\JavaProjects\clone\JSD2207\t-jsd-03\boot08\target\classes\mappers\ProductMapper.xml]

mapped 中执行SQL语句的Statements 对象的集合存在重复的值,存在于 cn.tedu.boot08.mapper.MyProductMapper.insert 中,请检查文件 F:\JavaProjects\clone\JSD2207\t-jsd-03\boot08\target\classes\mappers\MyProductMapper.xml and [F:\JavaProjects\clone\JSD2207\t-jsd-03\boot08\target\classes\mappers\ProductMapper.xml]

2.1.2 解决方案:
解决思路:
1)这里,我们需要先根据报错信息检查报错中让我们检查的两个文件是否为同一个文件。如果为不同文件参考步骤 2 。
2)然后,我们需要再检查我们的 MyProductMapper.xml 和 ProductMapper.xml 中 namespace 的值是否重复

2.2 案例2:

在这里插入图片描述
2.2.1 异常错误描述:
错误原因:Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.tedu.csmall.product.mapper.AlbumMapper.insert. please check file [D:\IdeaProjects\clone\JSD2207\jsd2206-csmall-product-teacher\target\classes\mapper\AlbumMapper.xml] and file [D:\IdeaProjects\clone\JSD2207\jsd2206-csmall-product-teacher\target\classes\mapper\AlbumMapper.xml]

 

mapped 中执行SQL语句的Statements 对象的集合存在重复的值,存在于 cn.tedu.csmall.product.mapper.AlbumMapper.insert 中,请检查文件 D:\IdeaProjects\clone\JSD2207\jsd2206-csmall-product-teacher\target\classes\mapper\AlbumMapper.xml and [D:\IdeaProjects\clone\JSD2207\jsd2206-csmall-product-teacher\target\classes\mapper\AlbumMapper.xml]

2.2.2 解决方案:
解决思路:
1)这里,我们需要先根据报错信息检查报错中让我们检查的两个文件是否为同一个文件。如果为同一个文件参考步骤 2 。
2)然后,我们需要再检查我们的 AlbumMapper.xml 中的 id 为 insert 是否有重复的

在这里插入图片描述

四: 端口号被占用解决办法

问题描述
java.net.BindException: Address already in use: JVM_Bind

在这里插入图片描述
Web server failed to start. Port 8899 was already in use.

 在这里插入图片描述

 
遇到上述类似问题代表你的端口号已经在使用中,我们俗称这种问题为端口号被占用。

解决方案
win+R 打开windows电脑运行窗口,并在运行窗口的文本输入框中输入 cmd指令

在这里插入图片描述
在弹出的命令窗口(终端)中输入命令 netstat -ano|findstr 8080,8080就是我们需要查询的端口号.

 在这里插入图片描述

 


我们会得到系统给与我们的响应,在查询出来的第一行有一个数值,我们需要记住

在这里插入图片描述
在这里我们可以通过两种模式去杀死被占用的端口号

终端指令 taskkill -pid pid值 -f

在这里插入图片描述
图形化界面

 在这里插入图片描述


这里还涉及到一些相关的终端指令
查看所有的端口号 netstat -ano

在这里插入图片描述
通过pid来获取进程的信息 tasklist |findstr pid值

在这里插入图片描述
通过进程名杀死对应进程 taskkill /f /t /im 进程名称

在这里插入图片描述

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值