Content type ‘application/json;charset=UTF-8‘ not supported异常的解决过程

2024-07-11 1087阅读

1.首先说明开发场景

*就是对该json格式数据传输到后台Content type ‘application/json;charset=UTF-8‘ not supported异常的解决过程

  • 后台实体类
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableName;
    import com.fasterxml.jackson.annotation.JsonIgnore;
    import lombok.Data;
    import org.springframework.format.annotation.DateTimeFormat;
    @Data
    @TableName("interview_information")
    public class InterviewInformationEntity {
        @TableId
        private Long id;
        /**
         * 应聘人员姓名
         */
        private String name;
        /**
         * 应聘人员年龄
         */
        private Integer age;
        /**
         * 性别
         */
        private Integer sex;
        /**
         * 身份证号码
         */
        private String idCard;
        /**
         * 邮箱
         */
        private String mailbox;
        /**
         * 简历网页地址
         */
        private String vita;
        /**
         * 应聘次数
         */
        private Integer numberJob;
        /**
         * 应聘结果(未应聘0,应聘通过1,应聘未通过2)
         */
        private Byte ending;
        /**
         * 面试信息表的id(具体的面试结果评分)
         */
        private Long InterviewResultsId;
        /**
         * 应聘岗位
         */
        private Long station;
        /**
         * 应聘时间
         */
        private Data time;
    }
    
    • controller中的代码
      @RestController
      @RequestMapping("/interview")
      public class InterviewInformationController extends AbstractController {
          /**
           * 应聘人员信息service
           */
          @Autowired
          InterviewInformationService informationService;
          /**
           * 黑名单service
           */
          @Autowired
          InterviewBlacklistService blacklistService;
          /**
           * 将应聘人员基本信息存入数据库
           * @param interviewInformationEntity  应聘人员信息实体类
           * @return  存储是否成功
           */
          @PostMapping("/setInterviewer")
          public R setInterviewer( @RequestBody InterviewInformationEntity interviewInformationEntity){
              //用户是否在黑名单中
              //获取黑名单
              List blacklistEntities=blacklistService.list(
                      new QueryWrapper().eq("interview_static","true"));
              //用于查看是否获取到黑名单
              System.out.println("黑名单"+blacklistEntities);
              //存入黑名单idcard
              Set blackList=new HashSet();
              blacklistEntities.stream().forEach(a -> {
                  blackList.add(a.getIdCard());
              });
              //如果注册者的省份证号在黑名单中,直接报错
              if (blackList.contains(interviewInformationEntity.getIdCard())){
                  return R.error("对不起,请另寻高就!");
              }
              //通过身份证查找是否存在在数据库中
              InterviewInformationEntity interview1=informationService.findByidCrid(interviewInformationEntity.getIdCard());
              boolean save;
              //判断查找的数据是否为空
              if (Objects.isNull(interview1)){
                  //如果存入的数据未存在数据库中,则直接将用户信息注入到数据库
                  save= informationService.saveOrUpdate(interviewInformationEntity);
              }else {
                  //如果存入的数据不是空,则对数据库中的信息进行更新
                  //将新存入的信息替换掉老信息存入到数据库中,通过id进行更新
                  interviewInformationEntity.setId(interview1.getId());
                  save = informationService.updateById(interviewInformationEntity);
              }
              return save?R.ok():R.error("保存失败");
          }
       }
      
      • 报错数据
        2024-04-30 09:07:35.474  INFO 25208 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/wedu]   : Initializing Spring DispatcherServlet 'dispatcherServlet'
        2024-04-30 09:07:35.474  INFO 25208 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
        2024-04-30 09:07:35.484  INFO 25208 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 10 ms
        2024-04-30 09:07:35.536  WARN 25208 --- [nio-8080-exec-1] .c.j.MappingJackson2HttpMessageConverter : Failed to evaluate Jackson deserialization for type [[simple type, class com.wedu.modules.sys.entity.InterviewInformationEntity]]: com.fasterxml.jackson.databind.JsonMappingException: Cannot deserialize Class lombok.Data (of type annotation) as a Bean
        2024-04-30 09:07:35.537  WARN 25208 --- [nio-8080-exec-1] .c.j.MappingJackson2HttpMessageConverter : Failed to evaluate Jackson deserialization for type [[simple type, class com.wedu.modules.sys.entity.InterviewInformationEntity]]: com.fasterxml.jackson.databind.JsonMappingException: Cannot deserialize Class lombok.Data (of type annotation) as a Bean
        2024-04-30 09:07:35.540 ERROR 25208 --- [nio-8080-exec-1] c.w.common.exception.RRExceptionHandler  : Content type 'application/json;charset=UTF-8' not supported
        org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supported
        	at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:225)
        	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:158)
        	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:131)
        	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121)
        	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:167)
        	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)
        	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
        	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
        	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.doPost(FrameworkServlet.java:909)
        	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
        	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.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        	at com.wedu.common.xss.XssFilter.doFilter(XssFilter.java:25)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
        	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
        	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
        	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
        	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
        	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
        	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
        	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
        	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
        	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
        	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
        	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
        	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
        	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
        	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.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
        	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.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: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:367)
        	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
        	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1598)
        	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:750)
        

        2.解决

        • 1.首先就是遇见了导包的博客,需要导下面的包,但是经过筛查并不缺
                  
                      org.springframework.boot
                      spring-boot-starter-web
                      2.1.5.RELEASE
                  
                  
                      com.alibaba
                      fastjson
                      1.2.58
                  
                  
                      com.fasterxml.jackson.dataformat
                      jackson-dataformat-cbor
                      2.9.9
                  
          
          • 2.其次遇到了说请求头中缺少下面这个东西
            ContentType :'application/json'
            

            但是请求头中确实存在该东西

            Content type ‘application/json;charset=UTF-8‘ not supported异常的解决过程

            • 3.实体类中出现问题
              • 该博客说其实这个问题的根本原因就是实体类中引用了一个没有实现实现Serializable 接口的对象,无法被反序列化,只需要在这个对象上添加@JsonIgnore这个注解即可。
              • 并且该报错已经进行提示了

                博客链接

                2024-04-30 09:07:35.536  WARN 25208 --- [nio-8080-exec-1] .c.j.MappingJackson2HttpMessageConverter : Failed to evaluate Jackson deserialization for type [[simple type, class com.wedu.modules.sys.entity.InterviewInformationEntity]]: com.fasterxml.jackson.databind.JsonMappingException: Cannot deserialize Class lombok.Data (of type annotation) as a Bean
                
                • 问题就在这

                  Content type ‘application/json;charset=UTF-8‘ not supported异常的解决过程

                • 随后我将该数据加上@JsonIgnore注解,确实解决之前的问题了,
                • 随后发现存入数据库时,数据类型不对等,然后反应 过来原来是数据类型错了,把时间日期类的Date写成Data,Data是lombok的类无法序列化
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]