
经验积累
文章平均质量分 67
开发过程中解决过的问题记录
zhangm2020
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OB删除1.5亿数据耗费2小时
本篇是实际操作 批量处理数据以及线程池线程数设置 记录学习背景:有一张用户标签表,存储数据量达4个亿,使用OceanBase存储,由于其中一种标签类型tagType1刷数时逻辑错误,所以需要将该类型数据全部删掉。原创 2024-12-17 18:31:35 · 831 阅读 · 0 评论 -
MySQL ON DUPLICATE KEY UPDATE影响行数
Updates返回结果表示在执行批量插入或更新操作时,总共有多少个操作被执行。这包括成功插入的行数和因为主键冲突而被更新的行数。具体来说,每次更新操作会被计为2(一次插入尝试和一次更新),而每次成功的插入操作会被计为1。原创 2024-12-12 10:49:24 · 764 阅读 · 0 评论 -
MQ从指定时间点开始消费 不生效
由此可知,设置消费时间点位应该输入的信息为时间的YYYYMMDDHHMMSS格式,这个确实有点误导人了,参数名称为consumeTimestamp消费时间戳,但却需要一个String的时间字符串格式原创 2024-12-10 14:52:27 · 527 阅读 · 0 评论 -
ES使用script进行复杂排序
要实现的排序逻辑是:如果wecom_friend字段包含指定id则优先排序。当前参考是字段==比较,那我们的是数组,则直接使用contains方法尝试。es数据字段,关注_source内容,为自定义的es表字段内容。,当前字段为long类型,所以是不是要去掉引号。提示错误,需要改成long类型数字去匹配。执行可以看到,并没有匹配到。原创 2024-12-06 15:31:08 · 851 阅读 · 0 评论 -
项目切换Java21
目前我们所有的项目都是Java8的,突然交接过来一个Java21的项目,项目启动耗时挺久,本篇记录下问题以及解决方案。原创 2024-11-29 15:17:52 · 965 阅读 · 0 评论 -
Elasticsearch应用
基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。索引索引是 Elasticsearch 中的基本存储单元,是用于存储具有相似特征的数据的逻辑命名空间。相当于MySQL的库表文档Elasticsearch 以 JSON 文档的形式序列化和存储数据。文档是一组字段,这些字段是包含数据的键值对。每个文档都有一个唯一的 ID,您可以创建该 ID 或让 Elasticsearch 自动生成该 ID。原创 2024-11-28 14:07:23 · 510 阅读 · 0 评论 -
openapi回调地址请求不通过
对接企业微信 产生会话回调事件 接口问题解决。原创 2024-11-01 16:54:27 · 2828 阅读 · 0 评论 -
no WeWorkFinanceSdk in java.library.path
百度可知:可以输出对应路径 System.out.println(System.getProperty("java.library.path"))加载WeWorkFinanceSdk本地库,也就是由本文开头链接下载的WeWorkFinanceSdk.dll文件。分析报错:是在java.library.path去找文件的,所以需要将这些dll文件配置到指定目录里。异常解读:在java.library.path路径中未找到WeWorkFinanceSdk。现在有文件了,这个文件应该放在哪里?原创 2024-10-17 11:02:48 · 876 阅读 · 1 评论 -
FileNotFoundException: XXX (系统找不到指定的文件。)
1. 首先确定文件是否存在2. 其次相对路径是由基准的,是基于当前运行启动所在的模块的根目录去相对的。原创 2024-08-21 12:00:58 · 617 阅读 · 0 评论 -
rocketmq实现限流
公司邮件服务token有 分钟内超200封的熔断机制,当前token被熔断后,系统发邮件操作会被忽略,所以邮件服务也没有重试操作人工发现token被熔断后,需要联系邮件群中值班人,将token恢复分货业务依赖邮件来查看分货通知以及结果,并且分货层层依赖,如果不能及时收到邮件会影响业务的分货时效等,所以通过三个方面去解决这个问题。原创 2024-07-08 17:03:14 · 771 阅读 · 0 评论 -
Could not resolve placeholder
编译后的target包下的配置文件名称是否跟启动类的环境一致(本次栽到这块了,耗费了两个小时,看源码,百度等等,坑已踩)1、检查编译后的target包里是否有该配置所在的文件。本质原因:项目启动未扫描到该配置,一般来说是配置不对。如果不在就clear,重新编译启动再去检查。2、检查启动的环境是否匹配。原创 2023-07-25 16:56:52 · 9380 阅读 · 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 · 4314 阅读 · 0 评论 -
CommunicationsException: Communications link failure
SQL自身问题场景曾解决过这种情况,发现是表的数据量过大、SQL未命中索引且查询筛选数据过多,导致SQL超时该情况问题解决:优化SQL,分批次查询系统资源不足场景也遇到过该情况,SQL分析发现,是非常简单的查询,执行仅需要毫秒级别,可以判断去与SQL本身无关。就去查看MySQL监控,发现报错时间段慢查询速率达到了峰值,mysql流量突增原创 2022-10-10 14:47:18 · 1712 阅读 · 0 评论 -
docker启动tomcat容器实例,浏览器访问失败
docker上使用tomcat镜像运行容器实例,在xshell上执行curl localhost:8080可以获取到tomcat页面信息,但是在页面输入ip+8080无法访问。每次重启Hyper-V管理器,再启动虚拟机后ip地址都会变化,优先解决了这个问题。因为终端上可以访问到,那么排除webapp下无文件的原因,可以判定为ip问题。2、设置自己的虚拟机,应用新建的虚拟交换机。原创 2022-09-30 14:47:32 · 2012 阅读 · 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 · 2763 阅读 · 0 评论 -
接口入参过大报错404
目录报错详情背景介绍问题原因定位问题解决报错详情正常使用的接口突然报错404了背景介绍本接口是一个确认分货数据的接口,与第三方是以base64加密的excel文件流交互的问题原因定位由于本次文件大小达到了4M,所以怀疑是入参过大导致,所以入参设置为空调用,调用正常所以可以得出是因为post请求入参过大,大于默认大小问题解决查找post请求限制大小相关文档,可见默认大小为2M,修改tomcat默认post请求大小配置即可,可见SpringBoot pos原创 2022-05-17 10:28:53 · 1159 阅读 · 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 · 11210 阅读 · 1 评论 -
tk.mybatis踩坑
1、千万别使用 insert 或者 insertUseGeneratedKeys特点:毫无扩展性1)如果后续本表新增字段,那么这块必须也要更新。2)如果其他业务也是用本表,新增了字段。我们不知情,那么必定会有线上报错目前在用insertSelective...原创 2022-03-15 19:42:07 · 812 阅读 · 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 · 1426 阅读 · 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 · 2030 阅读 · 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 · 2685 阅读 · 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 · 2338 阅读 · 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 · 1941 阅读 · 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 · 2391 阅读 · 0 评论 -
事务方法中的异步查询
业务场景:新增一条记录(insert好几张表)生效时,发kafka消息(多处新增需要兼容)service方法如下:@Transactional(rollbackFor = Exception.class)public void saveXXX(/** 忽略参数 **/){ //...省略保存数据库逻辑...// //sendMessage 根据主表的id去查询各个表,组装消息 CompletableFuture.runAsync(() -> sendMessage原创 2020-11-30 15:44:03 · 649 阅读 · 0 评论 -
后端Long类型传给前端显示丢失精度
目录问题描述测试第一步测试第二步原因解决问题描述后端服务controller传给前端Long类型的字段,出现丢失精度问题。原数据18位,例如:157276510349800005private Long customerId;传给前端,页面显示为:157276510349800000测试第一步在本地测试,Long类型在本地输出正常,可知后端传参数正常 public static void main(String[] args) { ..原创 2020-10-26 14:33:32 · 958 阅读 · 0 评论 -
本地分支commit后误删,代码找回
git reflog可以查看所有分支的所有操作记录,复制误删分支的commit_idgit branch newbranch commit_id切换到newbranch分支,检查文件是否存在。原创 2020-09-27 11:40:40 · 677 阅读 · 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 · 2469 阅读 · 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 · 4614 阅读 · 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 · 1402 阅读 · 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 · 1874 阅读 · 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 · 1412 阅读 · 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 · 14479 阅读 · 1 评论 -
maven 低版本jar包比高版本少文件依赖失败
问题描述:idea打开两个项目,项目1引入的是高版本,项目2引入的是低版本,低版本出现少文件现象,导致项目2依赖报错原创 2020-04-08 15:02:34 · 552 阅读 · 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 · 18485 阅读 · 0 评论 -
Java8Stream forEach不能return
Java8新特性:Stream,Stream 提供了新的方法 'forEach' 来迭代流中的每个数据。目录Stream操作的两个基础特征Stream的操作符Stream记录操作的方式Stream(流)是一个来自数据源的元素队列并支持聚合操作Stream操作的两个基础特征Pipelining: 中间操作都会返回流对象本身。 这样多个操作可以串联成一个管道, 如同流式风格...原创 2020-02-19 17:06:27 · 6660 阅读 · 0 评论 -
Spring事务嵌套:业务场景事务2异常时需要事务2回滚事务1提交
目录想法1:改变事务的传播方式想法2:当前情况就不应该使用事务嵌套(在事务方法1使用异步调用方法2)情况:前提:事务方法1调用事务方法2,两个方法可单独工作,现要实现当事务方法2出现异常时,事务方法1正常提交,事务方法2回滚想法1:改变事务的传播方式嵌套事务:就是事务方法A调用事务方法B,外层调用方法和内层被调用方法都是事务方法的情况。一般我们不关心...原创 2020-02-04 19:26:10 · 1439 阅读 · 1 评论 -
Spring事务不生效
一、同一类内方法调用,无论被调用的方法是否配置了事务,此事务在被调用时都将不生效。Spring的7种事务传播行为类型1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。2、PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘...原创 2019-12-07 15:24:50 · 333 阅读 · 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 · 586 阅读 · 0 评论