SpringCloud微服务踩坑系列-java.lang.IllegalStateException

news2024/11/28 12:50:09

 异常如下:

2023-05-24 08:47:10.764 ERROR 118400 --- [nio-8084-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Optional int parameter 'fareVersion' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.] with root cause

java.lang.IllegalStateException: Optional int parameter 'fareVersion' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.
    at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.handleNullValue(AbstractNamedValueMethodArgumentResolver.java:263) ~[spring-web-5.3.13.jar:5.3.13]
    at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:116) ~[spring-web-5.3.13.jar:5.3.13]
    at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121) ~[spring-web-5.3.13.jar:5.3.13]
    at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179) ~[spring-web-5.3.13.jar:5.3.13]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146) ~[spring-web-5.3.13.jar:5.3.13]
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.13.jar:5.3.13]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.13.jar:5.3.13]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.13.jar:5.3.13]
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.13.jar:5.3.13]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.13.jar:5.3.13]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.13.jar:5.3.13]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.13.jar:5.3.13]
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.13.jar:5.3.13]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.55.jar:4.0.FR]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.13.jar:5.3.13]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.55.jar:4.0.FR]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.55.jar:9.0.55]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.13.jar:5.3.13]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.13.jar:5.3.13]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.13.jar:5.3.13]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.13.jar:5.3.13]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.13.jar:5.3.13]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.13.jar:5.3.13]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.55.jar:9.0.55]
    at java.lang.Thread.run(Thread.java:750) [na:1.8.0_362]
 

 

这里的问题是调用的时候使用了json,这是一个比较低级的错误,也是比较常见的错误,如果调用的时候使用的是json格式的话,那就应该使用@RequestBody来转化成一个类,body里的每个属性名字和类名相同。

 

另外一种解决方式,不使用json,使用form-data,相当于每个参数对应方法一个属性

一样能成功解决,具体根据项目需要进行选择。

出问题的时候搜了好多,几乎千篇一律的让它方法参数中的int类型改为Integer类型,我想说的是,既然已经是null了,你转换成int会异常,那能转换为Integer类型真的就是你需要的吗?治标不治本,或许连标都不治,而且竟然变成了主流的建议(其实就是一个人写了然后10000个人拷贝,这也是为啥学技术的人要用google而不用百度的原因) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1978-2020年337个城市的原材料储备量数据

铜、钢、铝、木材、水泥等原材料是城市建设和经济发展的必备物质!厘清原材料的储备情况对于经济发展、资源可持续利用等都具有重要意义! 我们发现在Springer Nature平台上分享有1978-2020年我国337个城市的原材料储备量数据!该数据包括了337…

《Spring Guides系列学习》guide16 - guide20

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

【微博-计算Cell子控件的frame Objective-C语言】

一、计算Cell子控件的frame 1.来,看一下,刚才我们已经做到把这个模型设置给自定义的cell了吧, 那么,在这个自定义Cell里面呢,我们是不是要开始设置数据了, 设置数据,我们,设置数据,其实很简单,就是把我们这里边的每一个控件,对应的值,从模型里面取出来,给了它,…

挂耳式耳机品牌排行榜,看看谁被推荐上榜

下班路上就想放空自己刷会儿视频,但是马路、地铁还有公交上都会有嘈杂的声音影响,如果佩戴入耳式耳机放大声音不仅会过度屏蔽外界,同时还会损伤我们的耳朵,所以新近流行的开放式耳机很好的解决了这些问题,但也有很多小…

智安网络|如何做好网络漏洞管理?这几点一定要了解!

随着网络技术的不断发展和应用,网络安全已经成为了各个企业、机构、甚至个人都需要面对和解决的难题。而在网络安全中,漏洞管理是非常重要的一个方面。本文将阐述网络安全中漏洞管理的相关知识和如何有效地进行漏洞管理。 一、漏洞管理的定义 漏洞是指软…

5.YAML介绍

什么是YAML? YAML是一种存储数据的文件格式。类似json和xml。 Ansible playbooks或者配置文件,以称为YAML的特定格式编写。如果您使用过其他数据结构格式(如XML或JSON),则应该能够轻松地使用它。 上图中就是以3种格式表…

找不到vcruntime140.dll,无法继续执行代码,vcruntime140.dll怎么修复

vcruntime140.dll是一个Microsoft Visual C Redistributable包的一部分,它是用于运行在Windows操作系统上使用Visual C开发的程序和应用程序的必备文件之一。它是Microsoft Visual C Redistributable的动态链接库文件,也就是所谓的DLL文件。如果这个文件…

nova 11系列可打断动画闪亮登场,带你领略极致丝滑体验

华为nova 11系列手机自发布以来就受到广大消费者的好评和青睐,尤其是全网热捧的丝滑流畅动效体验,更是让不少用户直呼——“一旦上手,就回不去了”,让我们先来欣赏一下nova 11系列上的动效吧! 从上面的视频演示&#x…

C++学习day--12 循环的应用,暴力破解密码和输出动图

第 1 节 职场修炼:程序员到底能干多久 现状: 很多程序员,过了 30 岁,纷纷转行。 原因: 1 )薪资过万后,很难进一步提升 2 )可替代性高,在新人面前,没有…

学习ChatGPT,从这几个中文提示词教程开始

ChatGPT已经火爆了一段时间了,很多用户也体验了ChatGPT,他的回答非常的强大。但有些人能够得到很好地回答,有些人得到的答案,并不是非常的完美,其实这个短时间内,和一个叫做提示工程(Prompt Eng…

在城市之间“闪送”,同城即时速递的正确解法

从5月14日母亲节到“520”网络情人节,鲜花店、餐饮店和蛋糕店里,满是闪送骑手师傅进进出出的身影。 在成都,一位闪送师傅通过抖音展示了自己忙碌的一天:“了不起的母亲节,凌晨就开始预约单,(系…

SSM框架学习-REST内容、案例及快速开发

1. REST简介 当访问行为不同时(例如insert、delete等等),REST风格描述形式的路径是相同的,那如何区分? 所以,通过路径请求方式,我们就可以区分对资源进行了何种操作; 而REST风格对资…

[PyTorch][chapter 35][经典卷积神经网络-1 ]

前言: ILSVRC(ImageNet Large Scale Visual Recognition Challenge)是近年来机器视觉领域最受追捧也是最具权威的学术竞赛之一,代表了图像领域的最高水平。 ImageNet数据集是ILSVRC竞赛使用的是数据集,由斯坦福大学李…

太强啦!!!ChatGPT 能上传文件了,能执行 Python 代码啦!

ChatGPT又出试验型新模式,不少网友陆续收到代码解释器Alpha测试资格。 ​ 简单来说,这个模式提供两个功能:执行Python代码,接受文件上传下载。 为什么是这两个功能的组合? 可以看目前最火的一条测试结果&#xff0c…

MySQL——锁:概述、全局锁、表级锁、表锁(读锁、写锁)、元数据锁、意向锁、行级锁、行锁、间隙锁临键锁

5.锁 5.1 概述 ​ **锁是计算机协调多个进程或线程并发访问某一资源的机制。**在数据库中,除传统的计算资源(CPU、 RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必…

Linux---用户切换命令(su命令、sudo命令、exit命令)

1. su命令 root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。 普通用户的权限,一般在其HOME目录内是不受限的。 一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限。 su 是…

chatgpt国内镜像有什么优势?Gpt有什么强大的功能

chatgpt国内镜像有什么优势?其实这个是很多人都想知道的问题,小编觉得有必要给大家说一下,毕竟这个东西有优点也有缺点,下面我们一起来看看吧。 一.chatgpt国内镜像的优势 1.网络延迟更低 使用国内的ChatGPT镜像,可…

多目标遗传算法NSGA-II改进策略

上篇写道了关于多目标遗传算法NSGA-II原理详解及算法代码实现,本文将继续在这篇文章的基础上更深一步的向前探索,探索方向为: 基于NSGA-II算法的固有缺点,着重对其算法提出改进策略,并予以代码实现。同样,本…

医药公司药品品种分析

分析一家医药公司药品管线品种首先要罗列出该制药企业的上市品种及在研品种,然后再逐一分析之。 一般医药公司药品管线品种分析需要从多个角度进行解析,如:市场规模,市场占有率、政策法规、基药目录、国家/省市医保目录、新农合目…

【智慧排水】智慧排水监测系统助力城市抗洪排涝建设

随着城市的发展和生活水平的提高,城市排水系统面临着各种挑战和难题。虽然国家已经大力建设和改造雨污分流系统,以解决城市排水问题,但在实际应用中仍然存在着诸多难题,如雨污混接、偷排漏排、管道堵塞淤积、管道溢流和内涝等问题…