【问题标题】:Jersey Rest API call which sends file is not handled correctly by TomcatTomcat 未正确处理发送文件的 Jersey Rest API 调用
【发布时间】:2015-12-17 09:44:19
【问题描述】:

希望是简单的问题。

我有一个 Jersey Rest API 调用,它使用 StreamingOutput 返回一个文件,如下所示:

Response.ok(stream).header("Content-Disposition", "attachment; filename=\"" + fileName + "\"").build();

端点是:/rest/export
方法:POST
主持人:http://www.example.com

我可以使用在 Jetty 下运行的 Rest 客户端在本地 (http://localhost/rest/export) 测试它,它工作正常。当它部署在 Tomcat 中时,相同的调用会失败。我相信 Tomcat 中的某些配置会导致问题。我得到:

504 网关超时

我的问题是我必须使用哪些配置设置才能让它允许这个 rest api 通过?我尝试了一大堆,但似乎没有任何工作正常。

我的 Tomcat 安装是默认的,没有对任何配置进行任何更改。

感谢您提供任何信息/帮助。

【问题讨论】:

    标签: tomcat jersey tomcat8


    【解决方案1】:

    事实证明,这实际上是由于与 StreamingOutput 和 DeclarativeLinking 不兼容造成的。关闭链接解决了这个问题。但是,切换到 InputStream 作为响应也将解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-29
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      • 2016-02-06
      • 2019-08-10
      • 2021-05-03
      相关资源
      最近更新 更多