首页 > 其他 > 详细

restTemplate添加拦截器无法启动问题

时间:2020-12-29 11:10:16      阅读:57      评论:0      收藏:0      [点我收藏+]

无法启动问题

因为在服务间需要传递token信息,之前都是显示传参,我感觉这样很麻烦且重复不美观。于是为restTemplate添加拦截器统一设置。拦截器内容如下:
技术分享图片

配置如下:
技术分享图片

结果启动时就报错了:
技术分享图片

因为restTemplate bean导致启动失败了,从异常信息中可以看出(MetricsInterceptorConfiguration.java:100)这个地方add操作报错了。点进去如下:
技术分享图片

可以看出是为restTemplate添加MetricsClientHttpRequestInterceptor拦截器时报错了。
回头一看原来是自己添加拦截器设置有问题即:

// new 了个singletonList进去,而这个singletonList是不支持添加等操作的所以就报错了。
restTemplate.setInterceptors(Collections.singletonList(new ConnStrInterceptor()));

restTemplate内部是有一个成员变量interceptors的,只用往里面加就行了。正确设置如下:
技术分享图片

MetricsClientHttpRequestInterceptor提示

这个拦截器是为系统添加一些请求监控信息的,如果url类型非常多的话有可能会导致内存溢出。具体可以看下面这篇文章:spring-cloud-netflix-core引发的一次内存溢出分析


结语:singletonList使用还是要注意场景,这里我乱用了。

restTemplate添加拦截器无法启动问题

原文:https://www.cnblogs.com/chwwww/p/14205068.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!