作者:李豪山于 2018年04月11日 发布在分类 / 开发技术 / SpringCloud 下,并于 2018年04月11日 编辑
    SpringBoot系列-RestTemplate的异常:Not enough variables available to expand

       897

       0


    当使用 RestTemplate 远程调用时可能会遇到异常:Not enough variables available to expand

    废话不说,直接上代码:

    结果报错信息如下图:


    咦?Not enough variables available to expand  ''name'' 是什么东东?莫非是paramJson这个参数出问题了?可是这样的参数应该是没问题的吖!那么,到底是什么原因导致的呢。。。。

    经过一顿查找发现了问题所在,paramJson这个参数把花括号 { } 中的内容被解析当成了占位符,而这里又没有明确说明占位符对应的值,所以会导致报错。

    那么这就可以理解了,下面怎么解决呢?看了下getForObject()的源码:


    发现还有第三个参数 Object uriVarables,so easy,只需要简单几步即可搞定了,在url中使用占位符传参,将占位符的参数值即所传 json 放在第3个参数位置。

    如下:


    OK,是时候怼一波看下了,调用没问题,结果也返回了:


    下面将会有专门对RestTemplate的讲解文章,小伙伴们期待喔!

    访问权限

    创建人 李豪山
    文档编辑权限 创建者私有
    文档阅读权限 来自分类
    分类阅读权限 所有人
    分类编辑权限 所有人
    分类审核权限
    标签

    SpringBoot RestTemplate SpringCloud
    历史版本

    修改日期 修改人 备注
    2018-04-11 14:46:21[当前版本] 李豪山
    2018-04-11 14:43:06 李豪山 CREAT
    附件

    JPG PNG

    同类知识
    相关知识

    睿恒知识库-V3.2.0