Spring Framework RestClientException:从text/plain响应中提取String

Héc*_*tor 3 java rest spring

我有一个这个端点的REST API:

@GET
@Path("rol/{codEmp}")
@Produces(MediaType.TEXT_PLAIN)
public String getRole(@PathParam("codEmp") Long codEmp) {
    return dao.getRole(codEmp);
}
Run Code Online (Sandbox Code Playgroud)

响应的一个例子可以是:HOUSEKEEPER.

我这样消耗它:

@Override
public String getRole(Long codEmp) {
    HashMap<String, Object> urlVariables = new HashMap<String, Object>();
    urlVariables.put("codEmp", codEmp);
    HttpHeaders httpHeaders = new HttpHeaders();
    httpHeaders.setAccept(Collections.singletonList(MediaType.parseMediaType("text/plain")));
    HttpEntity<Object> requestEntity = new HttpEntity<Object>(httpHeaders);
    return restTemplate.exchange(rootUrl.concat("/rol/{codEmp}"), HttpMethod.GET, requestEntity, String.class, urlVariables).getBody();
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

"无法提取响应:没有为响应类型[java.lang.String]和内容类型[text/plain]找到合适的HttpMessageConverter"

我知道正确的方法是发送JSON响应,但我必须使用原始String.

我该如何解决?

谢谢

Héc*_*tor 6

解决了.我在我的Rest模板中添加了一个String转换器:

restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
Run Code Online (Sandbox Code Playgroud)