问题解决总结
文章平均质量分 59
开发过程中遇到的问题或者新接触到的技术记录
zhangm2020
这个作者很懒,什么都没留下…
展开
-
Could not resolve placeholder
编译后的target包下的配置文件名称是否跟启动类的环境一致(本次栽到这块了,耗费了两个小时,看源码,百度等等,坑已踩)1、检查编译后的target包里是否有该配置所在的文件。本质原因:项目启动未扫描到该配置,一般来说是配置不对。如果不在就clear,重新编译启动再去检查。2、检查启动的环境是否匹配。原创 2023-07-25 16:56:52 · 3412 阅读 · 1 评论 -
rocketmq客户端日志过大造成磁盘使用率占用过高
查看自定义客户端日志配置,分为两步第一步,配置rocketmq.client.logUseSlf4j=true启动参数 添加: -Drocketmq.client.logUseSlf4j=true 【推荐】或者启动类添加:System.setProperty("rocketmq.client.logUseSlf4j","true")第二步,配置logback日志配置检查项目中的配置第一步,配置在application.properties第二步,配置在logback.xml。原创 2023-07-04 11:23:50 · 2416 阅读 · 0 评论 -
CommunicationsException: Communications link failure
SQL自身问题场景曾解决过这种情况,发现是表的数据量过大、SQL未命中索引且查询筛选数据过多,导致SQL超时该情况问题解决:优化SQL,分批次查询系统资源不足场景也遇到过该情况,SQL分析发现,是非常简单的查询,执行仅需要毫秒级别,可以判断去与SQL本身无关。就去查看MySQL监控,发现报错时间段慢查询速率达到了峰值,mysql流量突增原创 2022-10-10 14:47:18 · 1495 阅读 · 0 评论 -
EasyExcel 单元格替换
目录场景:Java写excel需要将查不到的数据字段用“-”代替问题:字段为int类型,但是该字段需要接收“-”思路1:修改字段类型为String,组装list时赋值为“-”(❌)思路2:字段类型必须得是int类型,先写入,使用CellWriteHandler#afterCellDispos去替换(✔)实体类信息easyexcel将实体类list写入excel实现问题:字段为int类型,但是该字段需要接收“-”由于Java是强类型语言,只能是改为String类型。写入excel结果如下可以看原创 2022-06-15 14:45:34 · 2131 阅读 · 0 评论 -
接口入参过大报错404
目录报错详情背景介绍问题原因定位问题解决报错详情正常使用的接口突然报错404了背景介绍本接口是一个确认分货数据的接口,与第三方是以base64加密的excel文件流交互的问题原因定位由于本次文件大小达到了4M,所以怀疑是入参过大导致,所以入参设置为空调用,调用正常所以可以得出是因为post请求入参过大,大于默认大小问题解决查找post请求限制大小相关文档,可见默认大小为2M,修改tomcat默认post请求大小配置即可,可见SpringBoot pos原创 2022-05-17 10:28:53 · 942 阅读 · 0 评论 -
no suitable HttpMessageConverter found for response type [XXX]
目录1、背景2、报错详情3、代码定位4、问题解决1、背景使用Spring的RestTemplate进行网络请求,RestTemplate把数据从 HttpResponse 转换成Object的时候找不到合适的HttpMessageConverter2、报错详情Could not extract response: no suitable HttpMessageConverter found for response type [XXX] and content type [t原创 2022-04-21 15:57:59 · 10415 阅读 · 1 评论 -
tk.mybatis踩坑
1、千万别使用 insert 或者 insertUseGeneratedKeys特点:毫无扩展性1)如果后续本表新增字段,那么这块必须也要更新。2)如果其他业务也是用本表,新增了字段。我们不知情,那么必定会有线上报错目前在用insertSelective...原创 2022-03-15 19:42:07 · 649 阅读 · 0 评论 -
秒数设置为0的date,写入mysql的timestamp会出现部分秒数为1的情况
目录情况描述解决方案原因解析节点1:给到MyBatis的insertUseGeneratedKeys的参数节点2:MyBatis将java.util.Date转为java.sql.Timestamp节点3:最终执行的sql如下节点4:mysql测试结论情况描述1、数据库表字段类型为timestamp`XXX_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'XXX',2、mybati..原创 2022-01-05 14:37:36 · 1308 阅读 · 0 评论 -
EasyExcel常见场景
目录业务场景实现1:生成excel并用base64加密得到加密串实现2:去掉excel表头默认格式实现3:excel设置自定义列宽实现4:excel文件中有一列需要设置公式,G列 = F列 - H列 - I列实现5:G列需要设置,当数值 < 0 时 字体显示为红色总在本次涉及到excel开发中,使用了之前了解过的com.alibaba.easyexcel,本篇记录下一些用法业务场景1、与Excel方交互,需要将结果list实体类 转成 excel 的形式,再用b原创 2021-12-27 17:31:09 · 1505 阅读 · 0 评论 -
excel写为字节流使用base64加解密
业务场景:与excel方交互,需要将list实体类生成一个excel文件,然后用base64加密成字符串交互。并且excel方修改完后,会同样生成base64加密的字符串传回来,我再根据此字符串解析到excel信息将实体类list生成excel并使用base64加密无需生成excel文件,将内容写入到字节流中即可,字节流再去使用base64加密方式1:使用easyExcel得到字节流依赖包<dependency> <groupId>com.alibaba原创 2021-12-21 19:04:04 · 2057 阅读 · 0 评论 -
XA事务回滚处理Lock wait timeout exceeded
目录自测过程中,修改指定的一条数据报错该条数据被锁定的可能原因1、其他sql也在修改该条数据2、未提交的事务里对该条数据进行了修改解决:回滚XA事务自测过程中,修改指定的一条数据报错SQL: update XXX set status_id = ?, about_id = ? where id in ( 109);报错详情### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MyS.原创 2021-12-21 15:29:26 · 1730 阅读 · 0 评论 -
OutOfMemoryError:GC overhead limit exceeded问题定位
OutOfMemoryError:GC overhead limit exceeded官方解释报错的原因为:JVM花费了98%的时间进行垃圾回收,而只得到2%可用的内存,频繁的进行内存回收(最起码已经进行了5次连续的垃圾回收),JVM就会曝出ava.lang.OutOfMemoryError: GC overhead limit exceeded错误。查看报错日志信息[DUBBO] Got unchecked and undeclared exception which called by 1原创 2021-05-24 16:36:43 · 1586 阅读 · 1 评论 -
MaxUploadSizeExceededException: Maximum upload size exceeded
1、场景上传文件,文件大小1.7M,请求接口报错接口:@PostMapping("/import")@ResponseBodypublic FormatResponse imports(@RequestParam("file") MultipartFile file) { /**省略业务代码**/}2、定位原因查看日志:org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum原创 2021-03-01 17:26:34 · 2236 阅读 · 0 评论 -
事务方法中的异步查询
业务场景:新增一条记录(insert好几张表)生效时,发kafka消息(多处新增需要兼容)service方法如下:@Transactional(rollbackFor = Exception.class)public void saveXXX(/** 忽略参数 **/){ //...省略保存数据库逻辑...// //sendMessage 根据主表的id去查询各个表,组装消息 CompletableFuture.runAsync(() -> sendMessage原创 2020-11-30 15:44:03 · 562 阅读 · 0 评论 -
后端Long类型传给前端显示丢失精度
目录问题描述测试第一步测试第二步原因解决问题描述后端服务controller传给前端Long类型的字段,出现丢失精度问题。原数据18位,例如:157276510349800005private Long customerId;传给前端,页面显示为:157276510349800000测试第一步在本地测试,Long类型在本地输出正常,可知后端传参数正常 public static void main(String[] args) { ..原创 2020-10-26 14:33:32 · 818 阅读 · 0 评论 -
本地分支commit后误删,代码找回
git reflog可以查看所有分支的所有操作记录,复制误删分支的commit_idgit branch newbranch commit_id切换到newbranch分支,检查文件是否存在。原创 2020-09-27 11:40:40 · 578 阅读 · 1 评论 -
No enum constant XXX.name,Enum$valueOf(),入参类型为枚举对象名
使用valueOf()出现异常valueOf源码public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { /** * Returns the enum constant of the specified enum type with the * specified name. The name .原创 2020-06-16 14:46:46 · 1908 阅读 · 0 评论 -
constructor XXX in class com.XXX cannot be applied to given types
场景[2020/06/05 19:30:26] [ERROR] /med/src/main/java/com/param/QueryPolicyDetailParam.java:[15,1] constructorQueryPolicyDetailParam in class com.QueryPolicyDetailParam cannot be applied to given types;[2020/06/05 19:30:26] [ERROR] required: no argu...原创 2020-06-08 14:08:38 · 4273 阅读 · 0 评论 -
Mybatis if标签test中 空字符串与0相等的问题
目录场景查看mybatis执行代码修改场景拨打频次,前端不筛选时,传参:"",需要过滤出0的情况时,传参:0;但过滤0的情况时,还是出现了全量数据。代码:<if test="data.callFrequency != null and data.callFrequency != ''"> ...</if>查看mybatis执行代码class ASTNotEq extends ComparisonExpression { .原创 2020-06-01 16:08:02 · 1252 阅读 · 0 评论 -
TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 3
123 public Object execute(SqlSession sqlSession, Object[] args) { Object result; switch (command.getType()) { case INSERT: { Object param = method.convertArgsToSqlCommandParam(args); result = rowCountResult(sqlSessio...原创 2020-05-26 14:07:12 · 1649 阅读 · 0 评论 -
spring-boot-devtools导致类出现ClassCastException
异常信息:同一个类转换出现ClassCastException异常java.lang.ClassCastException: com.guazi.aftermarket.dubbo.crm.mining.entity.QueryNewCustomerInfoEntity cannot be cast to com.guazi.aftermarket.dubbo.crm.mining.entity.QueryNewCustomerInfoEntity at com.alibaba.fastjson.s原创 2020-05-20 18:17:29 · 1171 阅读 · 0 评论 -
Required Integer parameter 'listId' is not present、JSON parse error
POST请求接口,前端调用出现:org.springframework.web.bind.MissingServletRequestParameterException: Required Integer parameter 'listId' is not present相关代码:@RequestMapping(value = "/updateXXX", method = Request...原创 2020-04-09 18:43:24 · 14231 阅读 · 1 评论 -
maven 低版本jar包比高版本少文件依赖失败
问题描述:idea打开两个项目,项目1引入的是高版本,项目2引入的是低版本,低版本出现少文件现象,导致项目2依赖报错原创 2020-04-08 15:02:34 · 450 阅读 · 0 评论 -
expected at least 1 bean which qualifies as autowire candidate.
Java本地测试出错:available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations{@org.springframework.beans.factory.annotation.Autowired(required=true)} atorg.springf...原创 2020-03-11 14:25:40 · 13656 阅读 · 0 评论 -
Java8Stream forEach不能return
Java8新特性:Stream,Stream 提供了新的方法 'forEach' 来迭代流中的每个数据。目录Stream操作的两个基础特征Stream的操作符Stream记录操作的方式Stream(流)是一个来自数据源的元素队列并支持聚合操作Stream操作的两个基础特征Pipelining: 中间操作都会返回流对象本身。 这样多个操作可以串联成一个管道, 如同流式风格...原创 2020-02-19 17:06:27 · 5701 阅读 · 0 评论 -
Spring事务嵌套:业务场景事务2异常时需要事务2回滚事务1提交
目录想法1:改变事务的传播方式想法2:当前情况就不应该使用事务嵌套(在事务方法1使用异步调用方法2)情况:前提:事务方法1调用事务方法2,两个方法可单独工作,现要实现当事务方法2出现异常时,事务方法1正常提交,事务方法2回滚想法1:改变事务的传播方式嵌套事务:就是事务方法A调用事务方法B,外层调用方法和内层被调用方法都是事务方法的情况。一般我们不关心...原创 2020-02-04 19:26:10 · 1179 阅读 · 1 评论 -
Spring事务不生效
一、同一类内方法调用,无论被调用的方法是否配置了事务,此事务在被调用时都将不生效。Spring的7种事务传播行为类型1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。2、PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘...原创 2019-12-07 15:24:50 · 228 阅读 · 0 评论 -
excel文件追加内容,设置追加数据字体颜色,兼容.xlsx与.xls
关于IO的基础知识可见:IO一、行追加1、代码详细解释import lombok.extern.slf4j.Slf4j;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.X...原创 2019-11-24 14:16:52 · 499 阅读 · 0 评论