1、使用 Mybatis 逆向生成插件时报错:No plugin found for prefix 'mybatis-generator' in the current project and in the plugin groups

在查看相关插件已经导入的情况下,怀疑插件的问题;直接在IDEA命令行输入命令

mvn org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5:generate

其中,1.3.5是generator插件的版本号。 实现成功build

留存:mybatis逆向生成sql语句的xml配置参考:http://mybatis.org/generator/configreference/xmlconfig.html

2、mysql 对于 DATETIME 格式的字段默认值不允许设置为 '0000-00-00 00:00:00'

报错:Invalid default value for 'start_date';

通过下述语句查询 sql_mode 发现出现 NO_ZERO_IN_DATE,NO_ZERO_DATE 字样

select @@sql_mode;

可见需要修改配置,将这两个条件剔除。

由于我的 MySQL 放在Linux中,配置文件不是去 my.ini 中修改而是在 “/etc/my.cnf” 中添加如下设置后再重启MySQL服务即可。

[mysqld]
sql_mode=ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

一般来讲大家好像到这儿就成功了,但是我添加上述语句后重启 MySQL直接重启失败,无奈只能将默认值改为 ‘0001-01-01 00:00:00’ 成功。

参考:https://blog.csdn.net/cozil/article/details/88310014

3、HttpSession无法从域中getAttribute。跨域问题

通过上面的debug可以看到 this.attributes 是有将想存的 key-value 存入的,但一从 setAttribute() 中出来,发现 attributes 为 null 了。

此为跨域问题。往setAttribute() 加入的值,getAttribute() 获取不到。两个Session的地址不同,所以Session中的getAttribute() 方法获取的value为null。

解决方案:

1.对应的js的ajax请求中需要添加:(每个ajax中都需要加此属性,以保证session一致)

xhrFields:{withCredentials:true}

2.controller层注解中加入@CrossOrigin及允许访问的ip,设置allowCredentials为true

@CrossOrigin(origins = "http://localhost:63342", allowCredentials = "true",allowedHeaders = "*")

注意低版本的spring boot 支持 origins 为 '*',即允许所有路径访问,但高版本不行启动时会报错,只能再把 localhost 写出来。

参考1。注解属性解释及配置方式:参考1.1、参考1.2

参考2。高版本spring boot 不能将 origins 直接写成 '*' 的问题: 参考2

4、使用hibernate validator实现自定义validator校验器与全局捕获异常时报错

4.1)首先由于写了全局异常捕获的代码,所以能被controller层处理的异常都有自己对应的异常错误码和错误信息,处理不了的让ExceptionHandler帮我接收,并将异常命名为UNKNOWN_ERROR即“未知错误”。逻辑如下:

public class BaseController {public static final String CONTENT_TYPE_FORMED = "application/x-www-form-urlencoded";//定义exceptionHandler解决未被controller层吸收的exception@ExceptionHandler(Exception.class)@ResponseStatus(HttpStatus.OK)@ResponseBodypublic Object handlerException(Exception ex) {Map<String, Object> responseData = new HashMap<>();if (ex instanceof BusinessException) {            //自行设置的枚举异常类BusinessException businessException = (BusinessException) ex;responseData.put("errCode", businessException.getErrCode());responseData.put("errMsg", businessException.getErrMsg());} else {responseData.put("errCode", EmBusinessError.UNKNOWN_ERROR.getErrCode());responseData.put("errMsg", EmBusinessError.UNKNOWN_ERROR.getErrMsg());}return CommonReturnType.create(responseData, "fail");}}

其中 @ResponseStatus(HttpStatus.OK) 的含义为:既然内部异常捕获了就告诉前端后台程序部分没有问题,就算有问题也会告诉你错误信息的。

4.2)自定义的validator校验器如下

@Component
public class ValidatorImpl implements InitializingBean {private Validator validator;            //通过 javax 实现的 validator 工具//实现校验方法并返回校验结果public ValidationResult validate(Object bean) {ValidationResult result = new ValidationResult();Set<ConstraintViolation<Object>> constraintViolationSet = validator.validate(bean);     //入参:要校验的bean;出参:若违背校验 set 中就会有值if (constraintViolationSet.size() > 0) {//有错误result.setHasErrors(true);constraintViolationSet.forEach(constraintViolation ->{String errMsg = constraintViolation.getMessage();                               //违背校验规则的错误信息 + 错误字段String propertyName = constraintViolation.getPropertyPath().toString();result.getErrorMsgMap().put(propertyName, errMsg);});}return result;}@Overridepublic void afterPropertiesSet() throws Exception {//将hibernate validator通过 工厂 的初始化方式使其实例化this.validator = Validation.buildDefaultValidatorFactory().getValidator();}
}

其中,实现了InitializingBean接口会自动进行初始化和其他的静态代码块是异曲同工的。

4.3)service层使用自定义的ValidatorImpl 调用 validate() 方法时返回前端“UNKNOWN_ERROR” 即我自定义异常捕获器中最后一层的兜底异常,通过debug进 validate() 方法发现:

invoke()方法抛出invocationtargetexception var4异常

这个异常的意思是原先的内部异常被包装了一下,在查看其他的代码写的没问题的情况下(看大家遇到过的有没写@Param、sql语句写错等),怀疑是validator 依赖冲突的问题。

此时我只引入了

<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>5.2.4.Final</version>
</dependency>

有看到说缺少javax.validation,那再加上

<dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>2.0.1.Final</version>
</dependency>

走到这儿,问题还是没解决,依旧报上述错误。

解决方案:

将上述两个依赖去除,改为下述依赖即可

<!--校验-->
<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator-cdi</artifactId><version>7.0.1.Final</version>
</dependency>

参考1:自定义实现Validator:https://www.jianshu.com/p/b3876bf9396c

参考2:依赖问题:https://blog.csdn.net/Lao_gan_ma/article/details/119175862

												

SecKill学习初步框架时报错记录相关推荐

  1. 学习笔记——SpringBoot使用nutz框架时报错

    学习SpringBoot: 1.Impl文件下,注入dao报错. 1.注入dao时报错: 报错内容:'org.nutz.dao.Dao' that could not be found. 解决:pom ...

  2. android P OTA差分升级时报错记录

    在android P版本中制作出了差分升级包和差分降级包,在执行差分升级时报错,日志如下: [ 7.974280] Verifying current system... [ 7.974298] fa ...

  3. 关闭工单时报错 订单 XXXX 的未处理将来更改记录阻止删除标记/完成

    在QAS 610中 已以下几个工单为例测试 100024656 100024655 100024661 关闭时报错 订单 XXXX 的未处理将来更改记录阻止删除标记/完成 STEP 1: 执行事务码Z ...

  4. pycharm中python调用百度aip所遇问题解决方案记录:pip安装时版本报错以及aip导入时报错no module named aip/requests)

    pycharm中python调用百度aip所遇问题解决方案记录:pip安装时版本报错以及aip导入时报错no module named aip/requests pip安装时版本报错 pip升级后安装 ...

  5. 使用SpringBoot+MybatisPlus框架的后端项目调用SQL Server的存储过程时报错

    在使用SpringBoot+MybatisPlus框架的后端项目调用SQL Server的存储过程时报错: Mapper层xml中的代码为: 在命令行调用存储过程时,可以顺利执行,但是在mapper中 ...

  6. (学习笔记)OrCAD进行DRC时报错以及解决办法

    OrCAD进行DRC时报错以及解决办法 1.WARNING(ORCAP-1608):Net has no driving source XXX (信号名) WARNING(ORCAP-1600): N ...

  7. CV深度学习项目调试开发过程中报错记录【持续更新】

    1.加载读取本地数据集报错:can't open/read file: check file path/integrity can't open/read file: check file path/ ...

  8. 问题记录:jenkins构建时报错The goal you specified requires a project to execute but there is no POM in...

    jenkins构建时报错:The goal you specified requires a project to execute but there is no POM in this direct ...

  9. php接受post值报错,php接收post参数时报错怎么办

    php接收post参数时报错的解决办法:首先搜索[php.ini]中 [always_populate_raw_post_data ]:然后将前面的[;]去掉,并重启服务即可. php接收post参数 ...

  10. python read函数报错_python 使用read_csv读取 CSV 文件时报错

    读取csv文件时报错 df = pd.read_csv('c:/Users/NUC/Desktop/成绩.csv' ) Traceback (most recent call last): File ...

最新文章

  1. matlab练习程序(图像放大/缩小,最邻近插值)
  2. 数据挖掘流程(四):建模调参
  3. 深入理解Spark 2.1 Core (四):运算结果处理和容错的原理与源码分析
  4. java ssl 无证书_java – 如何修复SSL – 没有可用的证书
  5. 从零开始学习Docker
  6. 文件和异常 Python
  7. 构造一个简单的神经网络,以DQN方式实现小游戏的自动控制
  8. 2016 ICPC 大连网络赛 部分题解
  9. 求每个月最后一天mysql函数_计算指定年月的最后一天的自定义MYSQL函数_MySQL
  10. android请求网络接口(xutils3进行网络请求)
  11. 利用华为DTM将事件发送到Firebase
  12. BIOS中VT虚拟技术已经开启,但任务管理器中仍显示虚拟化已禁用
  13. 我养的无名花草,四季开花
  14. Alphalens笔记
  15. 《JAVA设计模式系列》责任链模式
  16. virtualbox 虚拟机 win7 激活后开机黑屏,只有横杠
  17. Android自定义实现按周签到打卡功能
  18. 这个春节,小灰收到一件不寻常的礼物
  19. 陪审团(01背包问题倒推具体方案)
  20. 【亲测】RMI之Hassion

热门文章

  1. IDEA右键菜单管理--懒人专用
  2. 数据分析全国薪酬分布状况
  3. CATIA二次开发开源项目—CATSearch
  4. 分享,请不要忽视了作者的版权
  5. -Xms -Xmx -Xmn -Xss 核心总结
  6. unit10-Cookie、Session
  7. 三角函数 公式【和差化积、积化和差】最简记忆口诀
  8. 打开 .mpp文件的一种方法
  9. MQ 是什么?为什么使用?
  10. ios学习路线图_iOS开发学习路线 +技巧整理