在 AWS EBS Spring 上返回文档时为 500

Posted

技术标签:

【中文标题】在 AWS EBS Spring 上返回文档时为 500【英文标题】:500 when returning document on AWS EBS Spring 【发布时间】:2019-09-21 08:56:10 【问题描述】:

我遇到了一些我不知道如何解决的问题。设法缩小问题的范围是一个胜利,但仍然......基本上我有一个实现 AbstractPdfView 的类,我用它来生成文档。之后,我将其返回给客户端并下载。当我在本地运行它时一切都很好,但是当我部署它时,它直接进入 500,(失败)net::ERR_INVALID_RESPONSE。以下是回复:

H/1.1 500
Server: nginx/1.14.1
Date: Thu, 02 May 2019 19:18:40 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Pragma: private
Cache-Control: private, must-revalidate
Content-Disposition: attachment;
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY

我不确定还提供什么,代码方面...问题是 - 是否有任何保护接收文件作为响应?可能是文件是直接下载的,而不是通过您指定保存位置的窗口吗? 谢谢。

【问题讨论】:

服务器日志中有关于 http 500 的内容吗?那可能是开始的地方。在 AWS 控制台中,如果您进入 EBS 应用程序并单击侧边栏中的“日志”部分,则可以请求“完整日志”。 他们都说同样的话——我发布的错误信息。并且它的所有内容都可以访问而不是错误。但这不可能是访问问题,因为它在本地主机上运行良好......对吗? 好吧,我发现 pdf 不在接受的标题中。现在我只需要找出如何添加它。 基本上,当它应该是 application/pdf 时,我会得到 Content-Type text/html。当我在本地运行时它是应用程序/pdf,所以如果有人知道如何更改它,请说出来:) 您可以将“produces”添加到您的请求映射注释中,例如,@GetMapping(value = "/mypath", produces = "application/pdf") 【参考方案1】:

我不敢相信...原来我在 PDF 文件中有一个字体(顺便说一句,我是从项目目录加载的),但它无法识别它。切换到基本字体,现在一切都好...感谢@peekay 指导我找到解决方案。

【讨论】:

哇太棒了!很高兴你发现了这个错误!

以上是关于在 AWS EBS Spring 上返回文档时为 500的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 METEOR_SETTINGS 环境变量在 AWS/EBS 上配置 Meteor

在 AWS beanstalk 下将特定的 EBS 卷挂载到 Docker

AWS 存储服务(EBS, S3, EFS)详细介绍和对比

aws相关知识

如何更改 cloudformation 中的默认根 EBS 大小? [AWS]

如何在 ECS(容器存储)上验证 AWS EBS(Beanstalk)? AccessDeniedException