springboot actuator + 프로메테우스 연동 후 메트릭 정보 호출 시 Converter 에러 (org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class java.lang.String] with preset Content-Type 'text/plain;version=0.0.4;charset=utf-8')

코딩을 합시다·2023년 2월 26일
0

프로메테우스와 actuator를 사용했고 잘연결되고 있는지 확인하고 싶어서

localhost:8080/actuator/prometheus url로 접속을 하는데 500에러가 떴다.....

이게 뭐지 싶어서 서버 콘솔창을 보니

org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class java.lang.String] with preset Content-Type 'text/plain;version=0.0.4;charset=utf-8'

이런 에러가 나와있었다.

에러의 원인은 요청에 대한 적절한 HttpMessageConverter가 없을 때 발생한다고 한다.
나 같은 경우에는 String을 처리해주지 못해서 생긴 문제같다.

문제의 원인은 바로 이 코드

@Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
                .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
                .build();
        converters.add(new MappingJackson2HttpMessageConverter(objectMapper));
        super.configureMessageConverters(converters);
    }

JSON 데이터를 처리하기 위한 메시지 컨버터를 설정하는 코드이며, String 타입을 처리하는 컨버터가 추가되지 않아서 생긴 문제이다.

@Override
    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(new StringHttpMessageConverter());
    }

String 타입을 처리하는 메시지 컨버터를 추가해줘서 해결해주었다.

0개의 댓글