Feign接口调用GET请求@RequestParam传参丢失

文章目录

    • 问题现象
    • 排查解决
      • GET加注解解决
      • 使用POST方式解决
    • 时间戳传参失败

问题现象

  • 项目使用的是Spring Cloud微服务,服务间调用使用的是Feign
  • 在一次服务调用时,发现GET传参丢失,没有传递过去任何参数
  • 加了@RequestParam注解,发现还是传参失败
  • 传递的参数有2个,1个是一个Long类型主键ID,一个是查询VO

排查解决

GET加注解解决

  • 要使用GET只能将封装的查询VO改为一个个参数
  • 确保在Feign接口的对应请求方法上正确使用@RequestParam注解,并传入正确的参数名称
  • 确保@RequestParam注解中指定的参数类型与Feign接口中方法的参数类型一致
  • 在服务的接口方和调用方,都要使用@RequestParam注解,服务方标明接收GET请求

使用POST方式解决

  • @RequestParam针对单个参数可以使用,对于对象示例无法使用
  • 但是传递多个参数时,使用对象封装比较简单,也比较优雅
  • 这就需要使用@RequestBody注解,只能使用POST方式
  • 最终测试发现,使用POST方式传参,同时增加 @RequestBody注解,可以解决这个问题
  • 同样,在服务的接口方和调用方,都要使用@RequestBody注解,服务方标明接收POST请求

时间戳传参失败

  • 解决传参问题后,发现在传递时间戳类型timeStamp参数时,解析失败
  • 主要是格式问题,无法解析,报错如下:
2023-08-31 15:36:23.971 ERROR 78816 --- [  XNIO-1 task-7] SituationAnalysisIntersectionExtentService : getEventDetailList:
Error while extracting response for type [java.util.List<com.newatc.api.situationanalysis.vo.SituationAnalysisIntersectionVO>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: 
Cannot deserialize value of type `java.time.Instant` from String "2023-08-31 15:35:05": Failed to deserialize java.time.Instant: (java.time.format.DateTimeParseException) Text '2023-08-31 15:35:05' could not be parsed at index 10; 
nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.time.Instant` from String "2023-08-31 15:35:05": Failed to deserialize java.time.Instant: (java.time.format.DateTimeParseException) Text '2023-08-31 15:35:05' could not be parsed at index 10at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 17] (through reference chain: java.util.ArrayList[0]->com.newatc.api.situationanalysis.vo.SituationAnalysisIntersectionVO["timeStamp"])
  • 由于两边的程序,使用的是不同的日期参数类型,一边是Date,一边是Instant,无法调和
  • 最终决定传参市,统一使用StringYYYY-MM-dd HH:mm:ss字符串传参,问题解决

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

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

相关文章

计算机网络学习易错点

目录 概述 1.internet和Internet的区别 2.面向连接和无连接 3.不同的T 4.传输速率和传播速率 5.传播时延和传输时延&#xff08;发送时延&#xff09; 6.语法&#xff0c;语义和同步 一.物理层 1.传输媒体与物理层 2.同步通信和异步通信 3.位同步&#xff08;比特同…

windows WSL配置cuda,pytorch和jupyter notebook

机器配置 GPU: NVIDIA Quadro K2000 与 NVIDIA 驱动程序捆绑的CUDA版本 但按照维基百科的描述&#xff0c;我的GPU对应的compute capability3.0&#xff0c;允许安装的CUDA最高只支持10.2&#xff0c;如下所示。 为什么本地会显示11.4呢&#xff1f;对此&#xff0c;GPT是这…

数学建模Matlab之优化类方法

本文还是来源于http://t.csdnimg.cn/P5zOD&#xff0c;但肯定不可能只有这些内容&#xff0c;否则那位作者应该会打我……&#xff0c;在这里&#xff0c;只是讲解优化类问题比较常用的方法&#xff0c;以TSP问题为例&#xff0c;适合入门。 模拟退火 模拟退火是一种概率算法&a…

OpenMesh 自定义Mesh附加类型

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 OpenMesh中自定义Mesh类型可以通过以下几个步骤完成: 选择Mesh为三角网格还是一般多边形网格。选择Mesh内核。通过所谓的Traits类参数化网格。通过这个萃取类可以添加任意类到网格项目,指定类型标量,点,法线和颜…

java接口怎么写

Java接口是一种定义规范的抽象类型&#xff0c;可以包含常量和方法的声明。接口在Java编程中具有重要的作用&#xff0c;可以实现代码的重用和灵活性。本文将详细介绍Java接口的编写方式和使用方法。 一、什么是Java接口 在Java中&#xff0c;接口&#xff08;Interface&…

macOS - 使用 chromedriver

文章目录 下载对应的 chromedriver 下载 Chrome https://www.google.com/chrome/ 查看 版本 下载对应的 chromedriver http://chromedriver.storage.googleapis.com/index.html https://chromedriver.chromium.org/downloads 移动 sudo mv chromedriver /usr/local/bin/ $ c…

基于Cplex的人员排班问题建模求解(JavaAPI)

使用Java调用Cplex实现了阿里mindopt求解器的案例&#xff08;https://opt.aliyun.com/platform/case&#xff09;人员排班问题。 这里写目录标题 人员排班问题问题描述数学建模编程求解&#xff08;CplexJavaAPI&#xff09;求解结果 人员排班问题 随着现在产业的发展&#…

第43节——redux介绍

一、什么是状态管理 状态管理是指在应用中维护数据状态的过程。随着应用不断变大&#xff0c;维护和同步数据状态的复杂度也会变得更高&#xff0c;因此状态管理是一个重要的问题。 状态管理的目的是 减少状态的冗余&#xff0c;提高代码的可读性。 减少状态的重复&#xf…

AIGC 微调的方法

AIGC 的微调方法可以分为以下步骤&#xff1a; 数据准备&#xff1a;收集尽可能多的数据&#xff0c;包括输入和输出数据&#xff0c;并将其划分为训练集、验证集和测试集。 模型选择&#xff1a;选择合适的模型结构&#xff0c;例如多层感知器&#xff08;MLP&#xff09;、卷…

win+ubuntu双系统扩容挂NTFS硬盘

ubuntu下查看 win下划出分区&#xff0c;进入ubuntu&#xff0c;打开终端 df -h 新建目录&#xff0c;挂载磁盘 sudo mkdir /home/zgf/dpdata 在win下磁盘为ntfs格式&#xff0c;转为ext4 sudo mkfs.ext4 /dev/nvme1n1p5 //nvme1n1p5为挂载盘名 临时挂载sudo mount /de…

WPF 02

Grid容器 分行和分列 <Grid><Grid.RowDefinitions><!--2*&#xff1a;此行是下面一行的两倍--><RowDefinition Height"2*"/><RowDefinition/></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition/>…

【AI视野·今日Robot 机器人论文速览 第四十四期】Fri, 29 Sep 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 29 Sep 2023 Totally 38 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;NCF,基于Neural Contact Fields神经接触场的方法实现有效的外部接触估计和插入操作。 (from FAIR ) 操作插入处理结果&am…

ESP8266使用记录(四)

放上最终效果 ESP8266&Unity游戏 整合放进了坏玩具车遥控器里 最终只使用了mpu6050的yaw数据&#xff0c;因为roll值漂移…… 使用了https://github.com/ElectronicCats/mpu6050 整个流程 ESP8266取MPU6050数据&#xff0c;处理后通过udp发送给Unity显示出来 MPU6050_Z…

TensorFlow学习1:使用官方模型进行图片分类

前言 人工智能以后会越来越发达&#xff0c;趁着现在简单学习一下。机器学习框架有很多&#xff0c;这里觉得学习谷歌的 TensorFlow&#xff0c;谷歌的技术还是很有保证的&#xff0c;另外TensorFlow 的中文文档真的很友好。 文档&#xff1a; https://tensorflow.google.cn/…

spring boot项目 mvn test 和 mvn clean install 和 mvn test-compile 识别不到测试类无法运行单元测试

测试类使用了junit4&#xff0c; spring boot 版本的test 框架自带的是junit5&#xff0c;不兼容。 按照spring boot 对应的版本的junit框架&#xff0c;修改测试类&#xff0c;比如我就修改了junit5。按照&#xff1a; https://docs.spring.io/spring-boot/docs/2.6.3/refere…

【2023年11月第四版教材】第17章《干系人管理》(第一部分)

第17章《干系人管理》&#xff08;第一部分&#xff09; 1 章节内容2 管理基础3 管理过程3.1 管理的过程★★★ &#xff08;22上44&#xff09;3.2 管理ITTO汇总★★★ 1 章节内容 【本章分值预测】大部分内容不变&#xff0c;细节有一些变化&#xff0c;预计选择题考2分&…

ORACLE Redo Log Buffer 重做日志缓冲区机制的设计

最近和朋友包括一些国产数据库的研发人员交流&#xff0c;很多程序员认为 Oracle 已经过时&#xff0c;开源数据库或者他们研发的国产数据库才代表数据库发展的未来。甚至在很多交流会议上拿出自家产品的某一个功能点和 Oracle 对比就觉得已经遥遥领先。 实际上数据库系统的发展…

go基础语法10问

1.recover的执行时机 无&#xff0c;recover 必须在 defer 函数中运行。recover 捕获的是祖父级调用时的异常&#xff0c;直接调用时无效。 func main() {recover()panic(1) }直接 defer 调用也是无效。 func main() {defer recover()panic(1) }defer 调用时多层嵌套依然无效…

10、页面结构分析

10、页面结构分析 元素名描述header标题头部区域的内容&#xff08;用于页面或页面中的一块区域&#xff09;footer标记脚部区域的内容&#xff08;用于整个页面或页面的一块区域&#xff09;sectionWeb页面中的一块独立区域article独立的文章内容aside相关内容或应用&#xf…

JVM机制理解与调优方案

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有需要我的支持&#xff0c;请私信或评论留言&#xff01; 前言 很多Java开发…