少写了 @ResponseBody 引发的古怪问题

最近在 Tomcat 里写一个异步的 HTTP 服务端,出于方便的考虑使用了 Spring MVC 注解来搞定,然后就发生了诡异的结果。
代码如下:

    @RequestMapping("/test")
    public DeferredResult<String> test(
            final @RequestParam(required = true) String uid,
            final @RequestBody String s
    ) 

HTTP 请求可以进入我定义的方法,并且异步也工作正常,在 DeferredResult<String> 对象被 setResult 时返回,没有任何异常出现,但是!
客户端收到 404,并且内容里包含了我返回的字符串。

折腾一个下午以后,未果,第二天才偶尔发现,原来我忘记写 @ResponseBody 了,正确的定义应该是这样的:

    @RequestMapping("/test")
    public @ResponseBody DeferredResult<String> test(
            final @RequestParam(required = true) String uid,
            final @RequestBody String s
    ) 

以这篇记录,纪念我浪费的又一天。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,082评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,989评论 6 342
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,386评论 11 349
  • 我是日记星球164号宝宝,我承诺每天如实如是的发表一篇日记,记录每天的生命历程。感恩所有同学家人的支持与鼓励!我相...
    韦炜阅读 396评论 0 3
  • 清晨,太阳在云层里露出了一角。空气的湿气有些重,让人感觉凉飕飕的。 老人们早早地在小区里晨练起来。张大妈老...
    闻誉阅读 564评论 0 0