常见异常报错
Too many open files
# 系统中进程占用的句柄数
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
PID 句柄数
# 查询某个进程都占用了一些什么样的句柄
lsof |grep 25950
# 查看当前系统最大可打开的文件描述符数量
ulimit -a
ulimit -n
# 设置临时值(系统重启后失效)
ulimit -n 65536
# vim /etc/sysctl.conf
fs.nr_open=1100000 //要比 hard nofile 大一点
fs.file-max=1100000 //多留点buffer
# sysctl -p
# vim /etc/security/limits.conf
* soft nofile 1000000
* hard nofile 1000000
This version of ChromeDriver only supports Chrome version 119
https://blog.csdn.net/renshuaicsdn/article/details/125537298
下载对应版本的ChromeDriver(下载win32版本的):
https://googlechromelabs.github.io/chrome-for-testing/#stable
Unit iptables.service could not be found
https://blog.csdn.net/qq_45950109/article/details/115429122
yum install iptables-services
systemctl enable iptables
systemctl start iptables
service iptables status
You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you can merge.
https://www.jianshu.com/p/7127c43ad737
报错原因:上一次pull的代码有冲突自动合并失败,在下一次pull之前你没有很好的解决这个冲突。
解决方案:撤销这次合并
git merge --abort
git reset --merge
Variable 'sql_mode' can't be set to the value of 'NULL'
用软件导出的数据文件,用source或者软件导入的时候常常有一些类似报错。
删除sql数据文件中的某些注释语句比如下面的:
0./*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
0./*!40014 SET NAMES UTF8*/
Host ' ' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
原因:短时间内多次连接错误,ip被MySQL服务端拉黑。
需要在服务端执行以下命令:
USE mysql;
FLUSH HOSTS;
SET GLOBAL max_connect_errors=1000;
SHOW VARIABLES LIKE '%max_connect_errors%';
java.util.stream.Collector com.google.common.collect.ImmutableSortedSet.toImmutableSortedSet(java.util.Comparator)
解决方法:将 pom.xml 文件中 guava 依赖的版本修改为带 -jre 的版本。
JPA 中模糊查询 findAllByNameLike(String name) 生成的查询语句中末尾多出 “escape ?”,导致查不到任何数据
使用JPA的模糊查询时需要手动添加“% %”,比如:
userRepository.findAllByNameLike("%" + name + "%");
You can't specify target table 'dyke_monitor_maintain_type' for update in FROM clause
不能先select出同一表中的某些值,再update这个表(在同一语句中);
多半是update在where条件后又Select了一次,所以报错:
UPDATE user SET name = 'lisi' WHERE id in (SELECT id FROM user WHERE sex = '男');
后面子查询再查询一次即可:
UPDATE user SET name = 'lisi' WHERE id in (SELECT * from (SELECT id FROM user WHERE sex = '男') as temp);
SpringBoot 升级到 3.0 之后出现的问题
javax.servlet.http.HttpServletRequest
原因:
swagger 版本问题,由于 swagger 需要 springfox 依赖,但是 springfox 版本过低。
解决:替换 swagger 为 springdoc
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.0.3</version>
</dependency>
Unable to resolve name [org.hibernate.dialect.MySQL5InnoDBDialect] as strate
将 org.hibernate.dialect.MySQL5InnoDBDialect
改为 org.hibernate.dialect.MySQLDialect
Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.
SpringBoot 新版本现在不会自动导入校验机制,需要我们手动导入。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
WSL2 中 Vmmem 内存占用过大问题
1.按下 Windows + R 键,输入 %UserProfile%
并运行进入用户文件夹。
2.新建文件 .wslconfig
,然后记事本编辑。
3.填入以下内容并保存, memory 为系统内存上限,这里我限制最大 2GB,可根据自身电脑配置设置。
[wsl2]
memory=2GB
swap=0
localhostForwarding=true
-bash: ./jpress.sh: /bin/bash^M: 解释器错误: No such file or directory
这是文件格式错误,一般将脚本文件从Windows系统上传到Linux系统会出现这种错误。
解决:
sed -i -e 's/\r$//' test.sh
jpa自定义findAll()方法.map()无效
// 两个 Specification 要对应
Specification specification = getSpecification(param);
Page<SafetyProblem> findAll(Specification specification, Pageable pageable);
// 或者
Specification<实体> specification = getSpecification(param);
Page<SafetyProblem> findAll(Specification<实体> specification, Pageable pageable);
全部评论