有个问题?

有个问题?

@RequestMapping(value = "/getshopinitinfo",method = RequestMethod.GET)
@ResponseBody
public Map<String,Object> getShopInitInfo(HttpServletRequest request){
   Map<String, Object> modelMap = new HashMap<String, Object>();
   List<ShopCategory> shopCategoryList = new ArrayList<ShopCategory>();
   List<Area> areaList = new ArrayList<Area>();
   try {
       shopCategoryList = shopCategoryService.getShopCategoryList(new ShopCategory());
       areaList = areaService.getAreaList();
       modelMap.put("shopCategoryList", shopCategoryList);
       modelMap.put("areaList", areaList);
       modelMap.put("success", true);
   } catch (Exception e) {
       modelMap.put("success", false);
       modelMap.put("errMsg", e.getMessage());
   }
   return modelMap;
}

===================================================

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<com.imooc.myo2o.entity.ShopCategory>` out of START_OBJECT token

 at [Source: (String)"{"shopCategoryId":null,"shopCategoryName":null,"shopCategoryDesc":null,"shopCategoryImg":null,"priority":null,"createTime":null,"lastEditTime":null,"parent":null}"; line: 1, column: 1]

at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)

at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1464)

at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1238)

at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1190)

at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.handleNonArray(CollectionDeserializer.java:331)

at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:264)

at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)

at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27)

at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4482)

at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3434)

at com.imooc.myo2o.service.impl.ShopCategoryServiceImpl.getShopCategoryList(ShopCategoryServiceImpl.java:71)

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.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:366)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)

at com.sun.proxy.$Proxy64.getShopCategoryList(Unknown Source)

at com.imooc.myo2o.web.shopadmin.ShopManagementController.getShopInitInfo(ShopManagementController.java:56)

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:879)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)

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.doGet(FrameworkServlet.java:898)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

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:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)

2020-05-23 19:02:51.883 [http-nio-8080-exec-1] ERROR c.imooc.myo2o.service.impl.ShopCategoryServiceImpl - Cannot deserialize instance of `java.util.ArrayList<com.imooc.myo2o.entity.ShopCategory>` out of START_OBJECT token

 at [Source: (String)"{"shopCategoryId":null,"shopCategoryName":null,"shopCategoryDesc":null,"shopCategoryImg":null,"priority":null,"createTime":null,"lastEditTime":null,"parent":null}"; line: 1, column: 1]

==========================================

@Override
   @Transactional
   public List<ShopCategory> getShopCategoryList(ShopCategory shopCategoryCodition) {
       String key=SCLISTKEY;
       List<ShopCategory>  shopCategoryList=new ArrayList<>();
       ObjectMapper mapper=new ObjectMapper();
//        根据条件拼接key
       if(shopCategoryCodition==null){
           key=key+"_allfirstlevel";
       }else if (shopCategoryCodition!=null && shopCategoryCodition.getParent()!=null && shopCategoryCodition.getParent().getShopCategoryId()!=null ){
           key=key+"_parent"+shopCategoryCodition.getParent().getShopCategoryId();
       }else if(shopCategoryCodition!=null){
           key=key+"_allsecondlevel";
       }
       if(!jedisKeys.exists(key)){
           String jsonString;
           shopCategoryList=shopCategoryDao.queryShopCategory(shopCategoryCodition);
           try {
               jsonString=mapper.writeValueAsString(shopCategoryCodition);
           } catch (JsonProcessingException e) {
               e.printStackTrace();
               logger.error(e.getMessage());
               throw new ShopCategoryOperationException(e.getMessage());
           }
           jedisStrings.set(key,jsonString);
       }else {
           String jsonString=jedisStrings.get(key);
           JavaType javaType=mapper.getTypeFactory().constructParametricType(ArrayList.class,ShopCategory.class);
           try {
               shopCategoryList=mapper.readValue(jsonString,javaType);
           } catch (JsonProcessingException e) {
               e.printStackTrace();
               logger.error(e.getMessage());
               throw new ShopCategoryOperationException(e.getMessage());
           }
       }
       return shopCategoryList;
   }

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕阿满 2020-05-24 09:59:47

所以同学的问题是解决了对吗?棒棒哒,继续加油。祝:学习愉快~

  • 提问者 MAYxDAY #1
    老师,问题解决了
    2020-05-24 10:11:25
提问者 MAYxDAY 2020-05-23 20:34:15

老师。之前不知道什么原因,我把空的值加入到缓存中,我把缓存都删了,重新加载就好用了。。。

提问者 MAYxDAY 2020-05-23 19:09:18

问题描述:添加商铺信息的时候,不能显示店铺分类列表和区域列表,我进行断点查看,发现不能反序列化,这个问题该怎么解决?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师