No hay convertidor para [clase java.lang.String] con el tipo de contenido preestablecido de ‘text/plain’.
Estoy tratando de devolver una cadena formateada desde un punto de conexión con Spring, con el siguiente código:
private static class Json implements Serializable {
private final String value;
public Json(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
@Override
public String toString() {
return "Json{" +
"value='" + value + '\'' +
'}';
}
}
@RequestMapping(value = "/description", method = RequestMethod.GET)
public HttpEntity<string> retrieveDescription() {
String text = this.retrieveDescription();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.TEXT_PLAIN);
return new HttpEntity<string>(text, headers);
}
Pero cuando ejecuto la solicitud, obtengo el siguiente error:
No hay convertidor para la clase [java.lang.String] con el tipo de contenido predeterminado ‘text/plain’
He intentado devolver la clase Json pero aún tengo el mismo problema. ¿Alguna idea de cómo solucionarlo?
davy.ai
El problema está en que el encabezado Content-Type se establece en TEXT_PLAIN, pero el tipo de retorno es un String. Spring no puede encontrar un convertidor para convertir el String a texto sin formato.
Para resolver esto, puedes cambiar el tipo de retorno a Json y serializar el objeto a JSON o actualizar el encabezado Content-Type a un formato compatible como application/json.
Aquí tienes un ejemplo de cómo devolver un objeto Json:
En este ejemplo, hemos cambiado el tipo de retorno a ResponseEntity y hemos establecido el encabezado Content-Type en application/json. El objeto Json se serializa a JSON y se devuelve en el cuerpo de la respuesta.
¡Espero que esto te ayude!