美文网首页
java.lang.ClassCastException:异常

java.lang.ClassCastException:异常

作者: 小河土 | 来源:发表于2018-08-17 00:13 被阅读0次

    因为用到Shiro 整合redis 所以就把 sesion 放在redis 里面,然后取出来的时候,一直报错 A
    java.lang.ClassCastException:异常 A cannot be cast to A 这样的错误,这里找了半天错误, 实在是找不出来, 之前怀疑是 类加载器的问题, 但是本人小白一个,对类加载器 不是很了解·····
    这个问题一直得不到解决

    后来在网上看到可能是
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
    </dependency>
    这个包的原因, 但是看了下没有这个包,

    但是我项目里面有 spring-devtools.properties这个文件
    有一项配置 #restart.include.beetl=/beetl-2.7.15.jar
    这个应该就是原因了。

    后来在一篇帖子下面的评论下找到了答案,这位大佬跟我一样, 在做shiro session 的时候 使用的是 org.crazycake:shiro-redis 这个包,
    在项目 /resource/META-INF目录下(如果没有就创建一个)创建
    spring-devtools.properties文件 加入下面代码:

    restart.include.mapper=/mapper-[\w-\.]+jar

    restart.include.pagehelper=/pagehelper-[\w-\.]+jar

    restart.include.shiro=/shiro-[\w-\.]+jar

    这里其实是
    添加 jar 包到 restart 类加载器中 = 后面是具体的 jar 包名称, 或正则表达式

    原因 DevTools 默认会对IDE中引入的所有的项目使用 restart 类加载器,对引入的jar包使用Base类加载器 因此要保证热部署时使用的类加载器一致就好了。

    总结下: 我的原因就是类加载器不同所有才会出现这个错误,同是一个类,但是就是不能转换。问题是解决了,具体原因可能说的不太清楚, 这个错误也可能是别的原因造成的。说的不对的地方, 请指教。本人小白。

    相关文章

      网友评论

          本文标题:java.lang.ClassCastException:异常

          本文链接:https://www.haomeiwen.com/subject/pwpabftx.html