个人记录BUG问题汇总表

2023-10-21 19:20

本文主要是介绍个人记录BUG问题汇总表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BUG问题汇总表

因为个人平时进场容易疏忽大意,经常性不止一次会犯重复性的错误,所以整理一份平时遇到的BUG问题表汇总,希望能够鞭笞自己细心,多学习,多进步

2020.5.18

1.

【问题】:mybatis的xml文件中,SQL语句查出来的字段在实体类中没有值,名称和返回值都指定了

【原因】:没有重新编译

【如何发现】:断点看查询出来值的时候发现

【如何修复】:重启IDEA之后就行了

【总结】:奇怪的BUG

2.

【问题】:Lock wait timeout exceeded; try restarting transaction

【原因】:这条语句在Mysql中被锁住了

【如何发现】:打了断点之后没有放行再次重启执行相应的SQL

【如何修复】:

1.首先查被锁住的语句

​ select * from information_schema.innodb_trx

2.找到之后找到线程编号,字段为trx_mysql_thread_id

3.通过命令杀死线程编号即可

kill 线程编号

【总结】:还是在测试的时候不够小心导致

3.

【问题】:下载依赖时报错:Cannot resolve org.openjfx:javafx.base:11.0.0-SNAPSHOT

【原因】:因为项目设置的jre换成了11

【如何发现】:maven导入jia包时发现

【如何修复】:file-setting-build-build tools -maven -importing选项中的jdk导入选择成8即可

【总结】:没有总结

5.22

1.

【问题】:通过nexus搭建maven私服,仓库名称全都指定好了,在部署时报错:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project integrated_tools: Failed to deploy artifacts: Could
not transfer artifact org.example:integrated_tools:pom:1.0-20200522.052151-1 from/to test (http://localhost:8212/repository/test/): Transfer failed for http://localhost:
8212/repository/test/org/example/integrated_tools/1.0-SNAPSHOT/integrated_tools-1.0-20200522.052151-1.pom 400 Repository version policy: RELEASE does not allow version:
1.0-20200522.052151-1 

【原因】:仓库名称取名为test,报错

【如何发现】:通过mvn deploy部署时发现

【如何修复】:将maven配置的setting.xml文件与私服的关联设置正确,并在工程的pom文件中配置仓库,名称要和setting.xml中的一样之后,检查仓库名称是否为test,取名为test所以报错

【总结】:没有总结

5.27

1.

【问题】:接口测试id数据正确,但是前端接收起来最后的尾数错误

【原因】:后端用Long类型超过17位导致前端接收精度丢失

【如何发现】:和前端联调时发现

【如何修复】:

  1. 后端传输JSON格式化为String类型的。
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long aliyunOssFileId;

@JsonFormat(shape = JsonFormat.Shape.STRING)作用就是将JSON数据的此字段格式化为字符串类型,保证前端超过17位不会出现精度丢失问题!

2.自己遍历list,然后重新赋值…麻烦

IPage<AppAd> appAdIPage = appAdMapper.selectPage(page, new QueryWrapper<>(null));List<AppAd> list = appAdIPage.getRecords();//定于dto集合为返回的值ArrayList<AppAdRespDto> respDtos = new ArrayList<>();if (list.size() > 0 ){//遍历填充每一个返回的dtolist.forEach(lists->{AppAdRespDto respDto = new AppAdRespDto();BeanUtils.copyProperties(lists,respDto);//因为Long类型超出17位前端解析会错误,所以转StringrespDto.setId(lists.getId().toString());respDtos.add(respDto);});//return CommonResult.success(PageModel.buildByIPage(page.setRecords(list)));return CommonResult.getSucceedInstance(respDtos,"成功");}

推荐第一种

【总结】:新发现

6.8

1.

【问题】: Expected one result (or null) to be returned by selectOne(), but found: 2

【原因】:使用MyBatis查询的结果需要一条数据(即一个实体),结果查出来有多条数据

【如何发现】:测试时

【如何修复】:

​ 其实有两种方式,根据业务来选择吧

1. 在Mapper层返回值定义为一个List即可接收多条数据2. 排查sql语句,要么是业务上面出现问题导致这条sql有两条,要么就是sql本身有问题,挨着排查即可

【总结】:没有总结

6.28

1.

【问题】: feign调用失败

【原因】:在feign接收的对应的crollter里面参数没有加上值为空的处理

【如何发现】:feign调用失败

【如何修复】:在RequestParam中加上required = false

@RequestParam(value = "userId",required = false)

【总结】:不够仔细

2.

【问题】: controller中方法报空指针异常

【原因】:方法定义为了private

【如何发现】:访问请求时发现

【如何修复】:将private转成public

@RequestMapping("/index")
@NoRepeatSubmit
public CommonResult getIndex(){return CommonResult.success("成功");
}

【总结】:不够仔细

7.14

1.

【问题】: 切面打印日志时,参数序列化异常

【原因】:异常信息:It is illegal to call this method if the current request is not in asynchron

【如何修复】:过滤掉为Request或者Response对象

//过滤序列化异常的请求参数Object[] args = joinPoint.getArgs();Object[] arguments = new Object[args.length];for (int i = 0; i < args.length; i++) {if (args[i] instanceof ServletRequest || args[i] instanceof ServletResponse || args[i] instanceof MultipartFile) {//ServletRequest不能序列化,从入参里排除,否则报异常:java.lang.IllegalStateException: It is illegal to call this method if the current request is not in asynchronous mode (i.e. isAsyncStarted() returns false)//ServletResponse不能序列化 从入参里排除,否则报异常:java.lang.IllegalStateException: getOutputStream() has already been called for this responsecontinue;}arguments[i] = args[i];}String paramter = "";if (arguments != null) {try {paramter = JSONObject.toJSONString(arguments);} catch (Exception e) {paramter = arguments.toString();}}log.info("[APP日志打印] remoteAddr: {},  请求URL: {}, 请求参数args: {}", remoteAddr, url, paramter);

7.17

1.

【问题】: EasyPoi导出Excel时报错

【原因】:异常信息:org.apache.poi.ss.usermodel.Sheet.getDrawingPatriarch()Lorg/apache/poi/ss/usermodel/Drawing;

【如何修复】:我这边时因为引入依赖版本太高所以导致的报错,

尝试降低版本

报错的版本为3.0.4

现在降为3.0.1

<!-- easypoi读取excel --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>3.0.1</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>3.0.1</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>3.0.1</version></dependency>

8.11

1.

【问题】: com.netflix.hystrix.exception.HystrixTimeoutException: null

【原因】:Hystrix设置超时时间过短,导致超时从而走了降级处理,

【如何修复】:

第一种办法,在配置中将超时时间设置长一点

hystrix:command:default:execution:isolation:thread:timeoutInMilliseconds: 10000

第二种办法,直接将超时处理给关闭掉

hystrix:command:default:execution:timeout:enabled:  false

个人还是更推荐第一个方法

11.9

1.

【问题】: Encountered invalid @Scheduled method ‘StesController’: Invalid inverted range:Invalid inverted range: ‘6-0’ in expression

【原因】:corn表达式为:0 0/1 0 ? * 7-1 意思是每周六和周日隔一分钟执行一次,这里要注意在corn表达式的周几取值中7代表周六1代表周日以此推算。用spring自带的定时器Scheduled时写好定时任务,在服务器上面部署时报错,但是很奇怪的一点是本地启动时没问题的,而且用各种corn工具测试也没任何问题,只有在服务器上面部署时会报这个错:范围无效

【如何修复】:

去查阅资料看源码再看corn表达式后换了一种写法

@Scheduled(cron="0 0/1 0 ? * 7,1")

这样就可以成功启动了,至于为什么-会报错而,不会,为什么我本地能够启动而服务器不行,现在还是有点懵逼的

2021.3.15

1.

【问题】: SpringBoot项目集成RedisTemplate后往redis里面存放数据后出现乱码

在这里插入图片描述

在这里插入图片描述
【原因】:这是因为Spring对key和value都进行了序列化后所导致的

【如何修复】:
手动重写一遍RedisTemplate的配置

/*** RedisTemplate配置* @param* @return*/@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)throws UnknownHostException {RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(redisConnectionFactory);// 设置其他的k-v的默认的序列化template.setDefaultSerializer(new Jackson2JsonRedisSerializer(Object.class));//单独设置k的序列化template.setKeySerializer(new StringRedisSerializer());return template;}

然后再次插入就不会出现乱码的问题了
在这里插入图片描述
在这里插入图片描述

2021.3.24

1.

【问题】: Handler processing failed; nested exception is java.lang.NoSuchMethodError: net.faseer.system.solr.SolrIndexResult.setsLanguage(Ljava/lang/String;)V

【原因】:这个问题其实有点奇怪,基本上都是由于以下两个原因导致

  1. 一般是jar包冲突,造成Java对象找到多个相同方法或变量不知道哪个正确,或者是直接找不到正确的可使用的,才会报出类似的错误
  2. 没有找到相关的方法,编译之后只是伪编译,实际并没有完全编译好

【如何修复】:

重新对项目编译一次然后运行即可

2023.1.31

1

【问题】: > Could not resolve org.codehaus.groovy:groovy:3.0.7.
Required by:
project :base-sys > com.xuxueli:xxl-job-core:2.3.0
> Module ‘org.codehaus.groovy:groovy’ has been rejected:
Cannot select module with conflict on capability
【原因】: 在引入xxl-job时和groovy包产生冲突导致
【如何修复】:
在引入的时候将groovy从项目中排除掉

示例(项目用的是gradle)
implementation (‘com.xuxueli:xxl-job-core:2.3.0’){
exclude group:‘org.codehaus.groovy’,module:‘groovy’
}

2

【问题】:Error preparing statement. Cause: com.google.common.util.concurrent.Unchecke
【原因】:mybatisplus拼接语法错误,在适用mybatisplus自带的mapper进行查询时,要注意数据库和实体类中的字段名称是否和sql的一些关键字冲突了,由于我其中一个字段名称叫explain,在查询的时候一直报语句错误,各个方面排查了半天才发现是因为explain这个字段在通过mybatisplus预处理成sql语句后被识别成了分析语句的关键字explain,所以一直报语句错误
【如何修复】:
1、可以换一个名称即可
2、在当前字段上面通过注解@TableField(“`explain`”)来表示这是一个字段名,一定要在字段名两边加上``这两个符号

这篇关于个人记录BUG问题汇总表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/256421

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.