mybatis-flex / mybatis-flex

mybatis-flex is an elegant Mybatis Enhancement Framework
https://mybatis-flex.com
Apache License 2.0
1.89k stars 182 forks source link

引入devtool包时执行lanbda表达式会报错 #125

Closed gthcprh closed 1 year ago

gthcprh commented 1 year ago

刚把个人博客从mybatisplus改成mybatisplex,运行报错, 报错: 2023-08-05 00:40:37.482 - [http-nio-8001-exec-1] ERROR c.s.b.exception.MyExceptionHandler - <== catch an exception | java.lang.ClassCastException: class com.site.blog.entity.Config cannot be cast to class com.site.blog.entity.Config (com.site.blog.entity.Config is in unnamed module of loader 'app'; com.site.blog.entity.Config is in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @3161f9e2) is failed, exception: java.lang.ClassCastException: class com.site.blog.entity.Config cannot be cast to class com.site.blog.entity.Config (com.site.blog.entity.Config is in unnamed module of loader 'app'; com.site.blog.entity.Config is in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @3161f9e2) at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:179) at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) at com.site.blog.service.impl.ConfigServiceImpl.getAllConfigs(ConfigServiceImpl.java:45) at com.site.blog.config.interceptor.GlobalInterceptor.preHandle(GlobalInterceptor.java:50) at org.springframework.web.servlet.HandlerExecutionChain.applyPreHandle(HandlerExecutionChain.java:146) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1076) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at com.site.blog.config.filter.BlackListFilter.doFilterInternal(BlackListFilter.java:50) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) 2023-08-05 00:40:37.518 - [http-nio-8001-exec-1] WARN o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - Resolved [java.lang.ClassCastException: class com.site.blog.entity.Config cannot be cast to class com.site.blog.entity.Config (com.site.blog.entity.Config is in unnamed module of loader 'app'; com.site.blog.entity.Config is in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @3161f9e2)] 代码片段 List<Config> blogConfigs = configMapper.selectAll(); Map<String, String> configMap = blogConfigs.stream().collect(Collectors.toMap(Config::getConfigName, Config::getConfigValue)); Constants constants = new Constants();

devtoll pom信息 `

org.springframework.boot
        <artifactId>spring-boot-devtools</artifactId>
        <!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖该项目的项目如果想要使用devtools,需要重新引入 -->
        <optional>true</optional>
    </dependency>`

不引入则正常运行

yangfuhai commented 1 year ago

当前是哪个版本?可以试试最新版本

gthcprh commented 1 year ago

当前是哪个版本?可以试试最新版本

1.springboot是3.1.2 2.mybatisflex是1.5.3,刚刚升级到1.5.5,还是报错

yangfuhai commented 1 year ago

参考文档:https://mybatis-flex.com/zh/faq.html#springboot-%E9%A1%B9%E7%9B%AE%E4%B8%AD%E5%87%BA%E7%8E%B0-class-com-xxx-cannot-be-cast-class-com-xxx-%E7%9A%84%E9%94%99%E8%AF%AF