Java工作中遇到的问题Method has too many Body parameters的处理办法SpringCloud Feign报错:Method has too many Body par
查询相关问题
if (nicheContractIds.size() > 0) {
String stringContractIds = nicheContractIds.stream().map(String::valueOf).collect(Collectors.joining(","));
// 使用自定义的sql
contractsQuery.addCustomWhere("id not in(" + stringContractIds +") ");//最终格式:id not in(12321323,2343242,53535)
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String createTime = dateFormat.format(nicheModel.getCreateTime());
// createTime需要转换成2020-09-02 12:00:00格式,new Date()格式不正确
contractsQuery.addGtWhere("createTime", createTime);
// 错误不支持
contractsQuery.addNotInWhere("id", nicheContractIds);
// 正确使用
Query query = Query.instance();
List<Object> ratios = new ArrayList<>();
ratios.add(HUNDRED);
ratios.add(ZERO);
query.addEqWhere("customerId", customerId);
query.addNotInWhere("ratio", ratios);
query.addEqWhere("isOpen", false);
query.addEqWhere("isDeleted", false);
query.addNotEqWhere("followStatus", FollowStatusConstant.CLOSE);
if (null != nicheId) {
// 编辑时排除自己
query.addNotEqWhere("id", nicheId);
}
Method has too many Body parameters的处理办法
SpringCloud Feign报错:Method has too many Body parameters
1、feign多参数问题
1.1GET方式
错误写法
@RequestMapping(value="/test", method=RequestMethod.GET)
Model test(final String name, final
int age);
启动服务的时候,会报如下异常:
Caused
by: java.lang.IllegalStateException: Method
has
too
many
Body
parameters: public
abstract
com.chhliu.springboot.restful.vo.User
com.chhliu.springboot.restful.feignclient.UserFeignClient.findByUsername(java.lang.String,java.lang.String)
异常原因:当使用Feign时,如果发送的是get请求,那么需要在请求参数前加上@RequestParam注解修饰,Controller里面可以不加该注解修饰 ,@RequestParam可以修饰多个,@RequestParam是用来修饰参数,不能用来修饰整个对象。
注意:@RequestParam Content-Type
为 application/x-www-form-urlencoded
而这种是默认的
正确写法
@GetMapping("/getSchoolDetail")
public ResultMap getSchoolDetail(@RequestParam("kSchoolId") LongkSchoolId,
@RequestParam("kSchoolYearId") Long kSchoolYearId);
1.1POST方式
错误写法
public int save(@RequestBody final User u, @RequestBody final School s);
feign中你可以有多个@RequestParam,但只能有不超过一个@RequestBody,@RequestBody用来修饰对象,但是既有@RequestBody也有@RequestParam,那么参数就要放在请求的url中,@RequestBody修饰的就要放在提交对象中。
注意 用来处理@RequestBody Content-Type
为 application/json
、application/xml
编码的内容
正确写法
public int save(@RequestBody final Person p,@RequestParam("userId") String userId,@RequestParam("userTel") String userTel);
- Hadoop数据分析平台实战——110Hive介绍和Hive环境搭建离线数据分析平台实战——110Hive介绍和Hive环境搭建
- 干货|普通反爬虫机制的应对策略
- python基础-字符串与编码
- Codeforces 708A Letters Cyclic Shift
- Codeforce 712A Memory and Crow
- 每日一水之strcmp用法
- HDU 3782 xxx定律
- HDU 2566 统计硬币
- HDU 2561 第二小整数
- python基础-数据类型与变量
- HDU 2520 我是菜鸟,我怕谁
- HUST 1586 数字排列
- next_permutation(全排列算法)
- Hadoop数据分析平台实战——100HBase和MapReduce整合离线数据分析平台实战——100HBase和MapReduce整合
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 图文详解Ubuntu搭建Ftp服务器的方法(包成功)
- Linux中chown与chmod两个命令的区别详解
- 解决navicat连接不上linux服务器上的mysql问题
- 增强Linux和Unix服务器安全性的方法详解
- ubuntu下没有中文输入法的解决办法
- linux查看端口是否开放的方法总结
- Linux下删除乱码或特殊字符文件的方法讲解
- Ubuntu Server下无线网卡的配置详解
- Linux中修改mysql默认编码的方法步骤
- ubuntu16.04搭建nfs服务的方法
- Ubuntu16.04搭建php5.6Web服务器环境
- Linux上通过SSH挂载远程文件系统方法详解
- Linux上创建、列出、删除Docker容器方法总结
- Centos 7.4服务器时间同步配置方法【基于NTP服务】
- PowerBI 通用万能日历模板,想干嘛就干嘛