跳到主要内容

QA常见问题

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映射配置,按照下图 加上结尾斜杠