Unable to start embedded Tomcat,不能开启容器,直接去异常堆栈的最后,查看异常的起源
    image.png
    改变我的配置文件如下
    image.png
    然后出现错误:
    org.xml.sax.SAXParseException: 前言中不允许有内容。
    还是配置文件的错误,改成下面的就好了
    image.png
    又出错了:
    class path resource [org/lizhen/vhrdemo/mapper/*.xml] cannot be opened because it does not exist,好像是回到了原来的错误。
    这时候仔细检查一下配置文件,发现是又写错了。应该给正确写法如下
    image.png

    改变这个之后,回到最开始的状态,配置文件改成下面的,
    image.png
    也不出错了

    Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?; nested exception is org.springframework.core.NestedIOException: Failed to deserialize object type; nested exception is java.lang
    这是redis缓存导致的错误。
    出现这个错误是因为我改了实体类的包名,但是redis缓存的还是原来包路径下的实体对象名,所以出现反序列化错误。
    只要把redis缓存数据清理一下重载载入就好了。
    或者换一下redis的数据库
    image.png

    1. 我才用了改数据库的做法,改完了,出现这种错误:

    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found),

    1. 难道不能这样改?把数据库重新改成0,然后去服务器上刷新redis缓存: redis-cli进入数据库 -> flushdb,重新启动,又报了第一次的错误:

    Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?

    1. 怎么回事,没刷新成功吗?然后 flushdball刷新,还是没有解决。
    2. 突然想到,自己的docker上有两个redis实例,刷新错了! 找到正确的redis,刷新,然后重新运行项目,又报了和第二次一样的错误:
      org.apache.ibatis.binding.BindingException: Invalid bound statement (not found),疯了。

    这个错误可能是很多因素影响的,具体原因如下:
    image.png

    1. 于是,发现原来自己的问题是第一条,忘了改路径了。于是把路径改好。还是报这个错。
    2. 原因2、 3肯定不会,4试了不行,5把路径从

    mybatis.config-locations: classpath:org/lizhen/vhrdemo/mapper改成
    mybatis.config-locations: classpath:org/lizhen/vhrdemo/mapper/*.xml还是不行。

    1. 把xml文件从下面转移到上面,同时把build从下面的换成了上面的。可以了。

    image.pngimage.png

    1. Caused by: org.apache.ibatis.reflection.ReflectionException: Illegal overloaded getter method with ambiguous type for property enabled in class class org.lizhen.vhrdemo.model.Hr. This breaks the JavaBeans specification and can cause unpredictable results.

    又遇到了这个错误。原因也很奇葩。
    @Data、和继承UserDetails不能同时存在。
    过仔细查找发现,笔者在User这个类中定义了enabled属性,且在User类上使用了@Data注解,但是这个User类又同时实现了UserDetails接口,并重写了isEnabled方法,这样就会导致出现上述的Illegal overloaded getter method with ambiguous type for property enabled。由于在此处isEnabled方法和getEnabled方法的逻辑完全一致,因此两者均被当作enabled属性的getter方法
    解决办法:再不需要生成getter方法的属性上添加如下注解:
    image.png

    当请求”/login”的时候,明明都已经是表单登录了,但还是不能成功,反而保了重定向太多的错误。百思不得其解,最后对比两个一模一样的代码,发现自己在 web.ignoring().antMatchers()里面多设置了一个 “/login”请求,导致login请求不能被拦截,以至于重定向过多导致的错误。因为SpringSecurity根本不能拦截这个请求,但是他又必须跳到这个请求,所以就会重定向过多。
    多一个解决思路:有重复代码,一个对一个错,那就重头对比。否则就从头到尾仔细看看每一处的代码。找到问题。
    另外:绝对不要把代码一直写到后面写到看不到,这样非常不容器排错。