QA常见问题
- 视频教程: https://space.bilibili.com/454617261
- 版本升级: 如何升级版本
1.Lombok插件未安装
问题: 导入项目代码很多错误,例如 实体没有get/set方法
解决办法: IDEA或者Eclipse中安装Lombok插件
2.提示表不存在 Table 'jeecg-boot.QRTZ_LOCKS' doesn't exist
解决方案 : 设置mysql数据库不区分大小写
错误截图:
3. 最新版本提示白名单校验未通过
- 原因:
这是新版为了平台安全防止被SQL攻击,针对表字典进行的白名单控制,只有在白名单配置了的表才允许通过表字典的方式访问。
- 白名单配置手册
4. 开发环境登录后台报错:Unable to correctly extract the Initialization Vector or ciphertext
问题原因: shiro的rememberMe策略与cookie相关问题引起。
解决方案: 直接清空浏览器的cookie的缓存,建议清空所有的cookie,问题可以得到解决。极有可能是当前浏览器在其他的网站中有过rememberMe的记录导致后台的shiro会用cookie去反序列化导致。
5. 代码生成器怎么用?
- 5.1 自定义数据库配置
代码生成器如果需要配置独立的数据库,需要注释掉下面代码,默认代码生成器与平台走一个数据库。
//注释掉此类
org.jeecg.config.init.CodeGenerateDbConfig
- 5.2 代码生成器自定义按钮和JS增强等未生成 代码生成器暂时不支持自定义按钮、增强、三级联动等高级控件生成 不支持清单
原因:这些功能生成的代码会很冗余不够精巧,代码已经生成了,手工改代码反而更方便
- 5.3 代码生成器外键规则说明 子表和主表关联字段命名 必须满足下面两种要求之一 否则生成的代码有问题
- 1.子表字段名名称必须带id 如main_id
- 2.子表关联字段和主表关联字段名一致,如子表的字段为order_no 那么主表需要有个字段叫order_no且配置外键的时候配置该字段
6.切换到其他数据库,启动程序报错
从3.6.2+
版本增加flyway
自动升级数据库机制,默认只支持mysql5.7、mysql8,所以切换其他数据库必须把flyway的配置关闭掉。
以application-dev.yml
为例,将属性spring.flyway.enabled=false
如果不改,启动程序会报错
7.shiro和token机制
-
7.1 如何排除token请求限制 平台所有请求默认通过shiro进行权限控制。
-
方案1:通过注解@IgnoreAuth 详细文档
-
方案2:免登陆取消Token验证机制,修改配置文件:org.jeecg.config.ShiroConfig的方法shiroFilter,排除你的请求。
- 7.2 TOKEN超时时间修改
org.jeecg.common.system.util.JwtUtil#EXPIRE_TIME
8.获取登录用户信息封装
- 8.1 获取登录用户方法(shiro机制)
LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
- 8.2 通过token获取登录用户方法 说明: 如果你的请求设置shiro拦截排除,通过上面的方式是获取不到用户的,这时候需要用到下面方法获取用户
org.jeecg.common.system.util.JwtUtil.getUsername(token)
9. 打包遇到缺少父依赖
错误:org.jeecgframework.boot:jeecg-boot-base-common:jar:2.0.2 is missing, no dependency information
请先 install 父项目 jeecg-boot-parent
10. 自定义包根路径
具体修改步骤:https://help.jeecg.com/java/advanced/basepath.html
11.如何实现saas多租户模式
https://help.jeecg.com/java/saas
12.新建模块启动错误
- 1.单体模式,不支持模块独立启动,只能启动jeecg-system-start,其他模块引入到jeecg-system-start里
- 2.微服务模式,支持服务模块独立启动,参考文档
- 3.还有一种情况报错,就是自定义了包路径(把默认的
org.jeecg
根路径改了) 点击解决方案
13.系统模糊查询规则
默认查询不是模糊查询,需要使用星号: *
例如:
格式一: 张* (后模糊匹配)
格式二: 张 (前模糊匹配)
格式三: 张 (全模糊匹配)
格式四: 张三 (更高级匹配)
这么做的原因是考虑系统数据量大了后,默认模糊查询 性能差 如果你想查询默认是模糊,可以将前端组件换成
JInput
,具体看JInput组件
14. 定时任务设置了每分钟,但是不能每次都执行
定时任务是分布式的,如果多个机器链接同一个数据库,会随机在某个机器上跑任务,所以不是到时间没跑,而是不知道在谁的机器上跑了
15.【MySql】Specified key was too long; max key length is 767 bytes的解决方案
https://blog.csdn.net/qq_33591903/article/details/103927547
16.前端项目发布后,访问慢解决
解决方案: nginx 开启压缩,提高首页访问效率
17.Druid监控
访问:http://localhost:8080/jeecg-boot/druid
登录名:admin,密码 123456
18. 单体升级为微服务
https://help.jeecg.com/java/springcloud/switchcloud/monomer
19.如何切换其他数据库
https://help.jeecg.com/java/setup/switchdb
20.通用逻辑删除方案
https://help.jeecg.com/java/advanced/logicdel
21. 后台启动报错: No bean of type 'org.apache.shiro.realm.Realm' found.
Please create bean of type 'Realm' or add a shiro.ini in the root classpath (src/main/resources/shiro.ini) or in the META-INF folder (src/main/resources/META-INF/shiro.ini).
解决方案: 请clean项目
22.字典注解@dict注解只针对返回类型为IPage的才生效
https://github.com/zhangdaiscott/jeecg-boot/issues/287
23. online表单功能如何配置到菜单上
24.war包部署tomcat报错 websocket
https://blog.csdn.net/qq_18649209/article/details/79529434
25.nginx部署 websocket 无法被代理 #699
https://github.com/jeecgboot/jeecg-boot/issues/699
26.mybatis-plus更新字段为null,忽略实体null判断
https://blog.csdn.net/qq_39403545/article/details/85334250
27. 禁用表单所有控件
28. 功能操作提示没有权限,权限在哪里赋予?
遇到操作无权限的情况,可能官方提交的升级SQL有遗漏或者你未执行增量SQL,这个时候可以手工操作配置权限。
- a.首先请查看console日志,确认无权限的指令
-
b.通过菜单配置按钮权限并给角色授权 配置手册
-
c.授权后,点击右上角用户头像下的
刷新缓存
或者退出重新登录
就好了
29. 微服务模式,jeecg-cloud-monitor启动报错
需要放开 org.jeecg.config.shiro.ShiroConfig类的,性能监控排除
//性能监控(为了安全默认注释掉了)
filterChainDefinitionMap.put("/actuator/**", "anon");
相关:https://gitee.com/jeecg/jeecg-boot/issues/I2796D
30. 微服务模式,点击SQL监控无反应
https://gitee.com/jeecg/jeecg-boot/issues/I27AWW
31. sqlserver下online报表查询排序不好用
https://github.com/zhangdaiscott/jeecg-boot/issues/2048
32. 微服务如果设置了nacos密码,会导致启动很慢且gateway的网关出问题
解决方案: nacos目前不支持密码,去掉密码设置
33.发布后,Online表单同步数据库报错 Could not parse mapping document: null
https://github.com/zhangdaiscott/jeecg-boot/issues/1024
java -Dfile.encoding=utf-8 -jar jeecg-boot-module-system-2.1.1.jar
34. 微服务模式启动,系统监控功能点击跨域
https://gitee.com/jeecg/jeecg-boot/issues/I27AYO
35.后台项目名 jeecg-boot 如何修改
修改配置文件: src/main/resources/application.yml
server:
port: 8080
servlet:
context-path: /jeecg-boot
36.在线接口文档swagger的配置
-
a.如何使用
新版本:http://localhost:8080/jeecg-boot/doc.html
登录名:jeecg,密码jeecg1314线上如何开启屏蔽模式: 修改参数 knife4j.production=true
-
b.swagger密码开启和设置
knife4j:
#开启生产环境屏蔽
production: false
basic:
#开启密码
enable: false
username: jeecg
password: jeecg1314
37.mysql脚本执行错误(数据太大导致)
https://gitee.com/jeecg/jeecg-boot/issues/I4FMQG
38.tomcat部署总提示找不到 WebSocket
https://gitee.com/jeecg/jeecg-boot/issues/I5NOUJ
39. 微服务打包启动报错“Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.”
回复: 启动命令没有加utf-8编码,因为nacos中的yml配置中有中文,所以必须加utf-8编码
java -Dfile.encoding=utf-8 -jar *
40. 后台部署仪表盘和积木报表支持https,SSL认证之后,request.getScheme()获取不到https的问题记录
https://blog.csdn.net/weixin_34376986/article/details/89767950
41. 通过nginx部署,登录验证码404
解决方案: nginx映射配置,按照下图 加上结尾斜杠