问题
1.spring.cloud.alibaba.版本2.2.1.RELEAS在用Micrometer 集成 Prometheus监控的时候,遇到prometheus的数据无法解析,报错原因是:supportedMediaTypes支持的类型不存在。
2.springBoot在集成Prometheus监控时,访问http://localhost:80/actuator/prometheus 时,报错
【org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class java.lang.String] with preset Content-Type 'null'】
定位问题
两者的问题都在于[prometheus的数据无法解析,supportedMediaTypes支持的类型不存在。]
1.根据错误信息查看:
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor的方法writeWithMessageConverters
异常
- 低版本micrometer-registry-prometheus无法正常显示:
`Could not find acceptable representation`
- 高版本1.3.5 micrometer-registry-prometheus无法正常显示:
HttpMessageNotWritableException: No converter for [class java.lang.String] with preset Content-Type 'null'
解决方案分析
解决Could not find acceptable representation
出现这种异常的原因是因为在你的项目中,直接new MappingJackson2HttpMessageConverter对象,没有设置它的MediaType,使得它只支持MediaType.APPLICATION_JSON一种类型而缺少其他的mediaTypes类型。
解决方法
将丢失的mediaTypes类型都加到MappingJackson2HttpMessageConverter。
List<MediaType> mediaTypes = Arrays.asList(
MediaType.APPLICATION_JSON,
MediaType.TEXT_PLAIN,
MediaType.TEXT_HTML,
MediaType.TEXT_XML,
MediaType.APPLICATION_OCTET_STREAM);
jackson2HttpMessageConverter.setSupportedMediaTypes(mediaTypes);
参考链接:https://blog.csdn.net/shenhonglei1234/article/details/105828795
https://blog.csdn.net/shenhonglei1234/article/details/106922919
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。