Spring @RestController不返回纯文本响应

 注定的等待幸福的到来 发布于 2023-02-10 15:23

我正在尝试使用新的Spring 4.0 @RestController从控制器返回一个简单的文本响应:

@RestController
@RequestMapping(value = "/heartbeat")
public class HeartbeatController {

    private static final Logger logger = LoggerFactory.getLogger(HeartbeatController.class);

    @RequestMapping
    public String heartbeat() {
        logger.info("Received heartbeat!");
        return "I'm Alive!";
    }

    @RequestMapping(value = "/test", produces = MediaType.TEXT_PLAIN_VALUE)
    public String heartbeat2() {
        logger.info("Received heartbeat!");
        return "I'm Alive!";
    }
}

当我访问/心跳然后我回来:

"I'm Alive!"

结果包括双引号,我没想到的.

当我访问/ heartbeat/test然后我得到一个空响应,但我希望我活着!文本.

UPDATE

curl -i http://myserver.com/rest/heartbeat

HTTP/1.1 200 OK内容类型:application/json; charset = UTF-8服务器:开发/ 1.0日期:2013年12月17日星期二18:59:08 GMT缓存控制:无缓存过期:1990年1月1日星期五00:00:00 GMT内容长度:12

"我还活着!"

curl -i -H"Accept:application/json" http://myserver.com/rest/heartbeat HTTP/1.1 200 OK Content-Type:application/json; charset = UTF-8 Server:Development/1.0日期:星期二, 2013年12月17日19:01:12 GMT Cache-Control:no-cache Expires:Fri,01 Jan 1990 00:00:00 GMT Content-Length:12

"我还活着!"

curl -i http://myserver.com/rest/heartbeat/test

HTTP/1.1 406不可接受服务器:开发/ 1.0日期:2013年12月17日星期二19:00:13 GMT Cache-Control:no-cache Expires:Fri,01 Jan 1990 00:00:00 GMT Content-Length:0

curl -i -H"Accept:text/plain" http://myserver.com/rest/heartbeat/test

HTTP/1.1 406不可接受服务器:开发/ 1.0日期:2013年12月17日星期二19:02:06 GMT缓存控制:无缓存过期:星期五,01年1月1日00:00:00 GMT内容长度:0

1 个回答
  • 我发现我在WebConfig的configureMessageConverters中缺少StringHttpMessageConverter.我正在配置消息转换器来控制Jackson ObjectMapper.

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
        mappingJackson2HttpMessageConverter.setPrettyPrint(SystemProperty.environment.value() == Development);
        mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper());
        converters.add(mappingJackson2HttpMessageConverter);
        converters.add(new StringHttpMessageConverter()); // THIS WAS MISSING
    }
    

    2023-02-10 15:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有