记录一下有点蠢的问题,序列化再次序列化就会出现这种问题。

[2022-05-16 10:18:18.645] [ERROR] com.fu.common.global.GlobalExceptionHandler                 :   46 - 500异常:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.fu.common.entity.TokenInfo` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('{"token":"89d5aa16-5b58-4d1d-ac34-68470183697d","userId":1,"userName":"admin","userDept":[{"deptId":1,"parentDeptId":0,"deptName":"全部部门","createTime":1652586793000},{"deptId":2,"parentDeptId":1,"deptName":"研发部门","createTime":1652599366000}],"userRole":[{"roleId":2,"roleName":"java开发工程师","disabled":false,"createTime":1652599420000},{"roleId":1,"roleName":"超级管理员","disabled":false,"createTime":1652586829000}],"userRoleMenu":[{"menuId":1,"parentMenuId":0,"menuName":"全部菜单","menuPower":"insert;delete;update;select","createTime":1652586965000},{"menuId":2,"parentMenuId":1,"menuName":"用户中心","menuPower":"","createTime":1652599386000}]}')at [Source: (String)""{\"token\":\"89d5aa16-5b58-4d1d-ac34-68470183697d\",\"userId\":1,\"userName\":\"admin\",\"userDept\":[{\"deptId\":1,\"parentDeptId\":0,\"deptName\":\"全部部门\",\"createTime\":1652586793000},{\"deptId\":2,\"parentDeptId\":1,\"deptName\":\"研发部门\",\"createTime\":1652599366000}],\"userRole\":[{\"roleId\":2,\"roleName\":\"java开发工程师\",\"disabled\":false,\"createTime\":1652599420000},{\"roleId\":1,\"roleName\":\"超级管理员\",\"disabled\":false,\"createTime\":1652586829000}],\"userRoleMenu\":[{\"menuId\":1,\"p"[truncated 220 chars]; line: 1, column: 1]at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1455)at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1081)at com.fasterxml.jackson.databind.deser.ValueInstantiator._createFromStringFallbacks(ValueInstantiator.java:371)at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromString(StdValueInstantiator.java:323)at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromString(BeanDeserializerBase.java:1408)at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:176)at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:166)at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4526)at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3468)at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3436)at com.fu.base.controller.LoginController.login(LoginController.java:113)at com.fu.base.controller.LoginController$$FastClassBySpringCGLIB$$b680891e.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)at com.fu.common.aop.LogAspect.doAround(LogAspect.java:86)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)at com.fu.base.controller.LoginController$$EnhancerBySpringCGLIB$$32a0d247.login(<generated>)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:748)

出现上面这种问题就是已经序列化还再次序列化。如下这种错误写法:

//存到redis里面的时候已经序列化过了,取出来的时候,new ObjectMapper().writeValueAsString(String,Object.class);这里的String是要序列化以后的字符串。但是我对它进行了2次序列化,所以会报上面的错。
redisTemplate.opsForValue().set(token,new ObjectMapper().writeValueAsString(tokenInfo),tokenOvertime, TimeUnit.SECONDS);
System.out.println(new ObjectMapper().readValue(new ObjectMapper().writeValueAsString(redisTemplate.opsForValue().get(token)),TokenInfo.class));


正确的做法是直接对其.toString();即可。

//对new ObjectMapper().readValue(params,Object.class);对里面的params.toString()即可。因为上一步存放到redis的时候已经对对象进行序列化了。
redisTemplate.opsForValue().set(token,new ObjectMapper().writeValueAsString(tokenInfo),tokenOvertime, TimeUnit.SECONDS);
System.out.println(new ObjectMapper().readValue(Objects.requireNonNull(redisTemplate.opsForValue().get(token)).toString(),TokenInfo.class));

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `x`相关推荐

  1. Json 错误com.fasterxml.jackson.databind.exc.MismatchedInputException:Cannot construct instance of

    在把json数据转换成对象的时候出现这个错误 错误日志 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot cons ...

  2. com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.zyw

    问题如下 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com ...

  3. com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `

    一 问题: Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct ins ...

  4. com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.lxw

    使用Feign是出现的问题 SpringCloud对Feign进行了增强兼容了SpringMVC的注解 ,我们在使用SpringMVC的注解时需要注意: 1.feignClient接口 有参数在参数必 ...

  5. com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.zha

    在使用SpringCloud进行RestTemplate 反序列的时候报错 解决方案: 认真核对两个实体类中的字段是否相同即可解决 细心查找不行就直接复制 过去 最好是复制 以免出错

  6. 【objectMapper实体转换异常】 com.fasterxml.jackson.databind.exc.MismatchedInputException

    大家好,我是烤鸭: 采坑实录,想把json数据直接转成对象,其中有个属性是list<T>: 异常 1 com.fasterxml.jackson.databind.exc.Mismatch ...

  7. Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException

    问题描述 整合SpringSecurity时, 认证通过后把LoginUser信息存储到redis缓存中: 校验token通过后,读取redis缓存中的LoginUser数据失败,报错: Caused ...

  8. 报错, nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException

    问题: 2021-03-23 16:57:28.461 ERROR 7912 --- [io-12000-exec-1] c.y.w.c.GlobalControllerExceptionHandle ...

  9. com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct (no Creators)

    摘要 记录下使用lombok遇到的反序列问题,一开始在lombok1.16.18中并没有发现,然后应用中没有指定lombok全局版本,引入的其他二方包将lombok版本提升到了1.16.20,然后报错 ...

最新文章

  1. 读过本文才算真正了解Cassandra数据库
  2. Roger Ver:BCH也可成为价值储备,前提是它被用起来
  3. python编程与特征提取_Python进行特征提取的示例代码
  4. 《告别失控:软件开发团队管理必读》一一1.2 成功的程序设计经理为什么难当...
  5. python 数据库查询序列化_python-将sqlalchemy类序列化为json
  6. Nauuo and Votes
  7. codeblocks调试窗口字体大小以及修改主题
  8. CSS兼容IE6,IE7,FF的技巧(COPY来的,还没看)
  9. Java 8 Optional 类 学习
  10. HearthBuddy卡组
  11. 阿里P5、P6是什么级别?加入超级实习生能拿到吗?
  12. XXX客户2020年护网行动总结报告
  13. hdu 5208 Where is Bob
  14. Panda白话 Reactor -背压策略
  15. 新浪微博 ios/android 你所访问的站点在新浪微博的认证失败 解决方法
  16. css动画与渐变案例,使用动画和渐变做一个背景动态网页
  17. Java throw和throws关键字的使用及区别
  18. 字库芯片介绍与使用(附STM32程序~~~)
  19. 思杰虚拟服务器,思杰服务器虚拟化安装
  20. 2022年计算机软件水平考试信息安全工程师(中级)练习题及答案

热门文章

  1. 中国工程院院士邬江兴:未来网络之憧憬——情景网络
  2. 有n只蚂蚁在一根木棍上,蚂蚁们只知道距左端的距离,棍子的长度,但不知道他们的朝向,蚂蚁们走到端点的时候会落下木棍,求所有蚂蚁们走过的最短和最长路程。
  3. CCLE 2022 第五届中国教育后勤展览会
  4. Spring MVC : HandlerMappingIntrospector
  5. 打开ajax大门的新世界(我真的很喜欢这篇内容!)
  6. 渗透测试学习笔记_Day1
  7. ArcToolbox的运行结果发布为GP服务
  8. 【环境配置】python+matplotlib简单安装教程
  9. mysql 全局不重复_如何批量生成MySQL不重复手机号大表实例代码
  10. 数据融合-机器人定位