can not cast to JSONObject,HTTPClient项目间服务调用时踩的一个大坑
restTemplate远程调用接口,debug时数据已经都拿到了,可是死活就是在最后返回值的时候报can not cast to JSONObject
饺贼最开始执迷不悔,以为是postman里我的参数格式写错了,一直纠结到底要不要加[ ]。因为他当时报的还有一个syntax error,提醒我改数组符。在这浪费了好一段时间后,我去到封装的参数实体类里看了看JSON的转换格式,这里用的是parseObject
private void assignProperties(String key) {JSONObject src = JSON.parseObject(String.valueOf(this.get(key)));src.keySet().forEach((k) -> {if (null != k && !"".equals(k)) {this.params.put(k, src.get(k));switch (k) {case "pageNo":this.pageNo = (Integer) src.get(k);break;case "pageSize":this.pageSize = (Integer) src.get(k);break;case "sort":this.sort = (String) src.get(k);break;case "order":this.order = (String) src.get(k);break;default:}}});}
饺贼又研究了一下,以为是他的parse解析力度不够,于是给他加了parseObject后跟了一个JSONObject.class。再测,发现class加上之后,gateway(controller)方面没错,Api(实现代码)这里又出问题了。经过一大截漫无目的踩坑,我猛然发现,这里的JSON转换是转的parseArray、
我试探性的把他改为ParseObject,加上和API层相同的JSONObject.Class,奇迹的发现,居然调通了!
经过一番调试,我把原来多余加的class参数删掉,发现一样还是可以测通。
总结:
于是,经过大半天的踩臭臭,饺贼总结出了一个血淋淋的教训,一定要细心!!!
JSON转入和转出一定要用一样的parse格式,不然。。。
can not cast to JSONObject,HTTPClient项目间服务调用时踩的一个大坑相关推荐
- 微服务间的调用和应用内调用有啥区别
摘要 目前大部分的系统架构都是微服务架构,就算没有注册中心.服务管理,也肯定是多个服务,单体服务比较少了. 大家平时需要在应用内调用rpc接口也比较多,那么有没有思考过微服务之间的调用和应用内直接调用 ...
- java 多个项目间事物_Java-web-多个独立项目之间相互调用实践
本篇文章只涉及到应用层面,没有涉及到什么底层原理之类的,我目前的实力还没有达到那个级别.如果是大神级别的人看到这篇文章,请跳过. 项目框架也已经是搭建好了的,springboot版本为1.5,数据库操 ...
- vagrant搭建nginx、php环境,两个项目间使用curl请求问题
vagrant搭建nginx.php环境,两个项目间使用curl请求问题 场景:vagrant搭建两个项目,A项目生成订单,B项目完成支付,再回到A项目返回支付成功信息. 问题:从A项目发送一条支付请 ...
- maven聚合项目项目间依赖时,出现错误的解决办法
纯手打,转载请附上本文网址!!! 例如自己的项目taotao maven聚合项目项目间依赖时 打包时候要先在聚合工程里面(从外向里)整体install,再到子工程里install mvn clean ...
- .NET Core微服务之服务间的调用方式(REST and RPC)
一.REST or RPC ? 1.1 REST & RPC 微服务之间的接口调用通常包含两个部分,序列化和通信协议.常见的序列化协议包括json.xml.hession.protobuf.t ...
- 大项目微服务架构设计
根据目前产品存在的问题,针对快速开发.海量用户.大量数据.低延迟等互联网应用的实际需要,通过对业务架构.系统架构.基础架构.技术架构进行分析,采用先进实用的微服务SOA架构重构智慧校园.数字化校园等产 ...
- python不同目录调用_python3 不同目录间模块调用
#Author by Andy #_*_ coding:utf-8 _*_ #__file__获取当前程序的相对路径 import os,sys #print(__file__) # os.path. ...
- HttpClient Get/Post方式调用Http接口
HttpClient Get/Post方式调用Http接口 本节摘要:本节主要分别介绍如何用get方式.post方式向http接口发送数据. preparation 1. 项目环境如下: myecli ...
- git 创建webpack项目_从0到1开发一个小程序cli脚手架(一)创建页面/组件模版篇...
github地址: https://github.com/jinxuanzheng01/xdk-cli cli工具是什么? 在正文之前先大致描述下什么是cli工具, cli工具英文名command-l ...
最新文章
- 注会用计算机,注会准备什么计算器?有型号要求吗?
- 【博客话题】我的2011项目总结
- 【提高系列】webpack相关知识
- 读《程序员必读的职业规划书》
- paramiko在windows上的安装和使用
- 计算平均指令时间_为什么向量化计算(vectorization)会这么快?
- 《千只鹤》:面对爱,我们永远还行走在成长的路上 ...
- 上一季诺基亚销售下跌28%
- Vue+elementUI+springboot+mybatis demo教程(二)
- O-RAN: Towards an Open and Smart RAN
- jar编译成exe可执行文件【图文教程】
- python SQLite 初识
- psim扰动观察法编程c语言,基于PSIM的新型扰动观察法的MPPT仿真研究
- 架构之:serverless架构
- 仿9GAG制作过程(二)
- 安装脚本实现百度云播放视频加速
- 机器学习评估指标 - f1, precision, recall, acc, MCC
- React制作简易小名片
- 修复iPhone白苹果
- 剑指offer——44.翻转单词顺序序列
热门文章
- Android面试知识点_
- 2020年Java面试复盘,收获Offer,金三银四程序员面试精装版pdf,分享给跳槽面试的程序员
- 应用软件的日志系统的设计要求
- How to install Windows device driver, Vista, Vista x64, WinXP, WinXP x64 Window
- Espcms,Espcms程序,Espcms插件
- Linux查看系统所有运行进程,如何在Linux系统列出systemd下所有正在运行的服务
- linux下动态壁纸(ubuntu20.04测试)
- opencv-StereoBM算法流程(二)
- 2021计算机维修工,2021年计算机维修工职业资格考试模拟要求.doc
- 自主云服务器处理器_鼎甲与飞腾FT2000+/64处理器完成兼容性互认证