HeadersTooLargeException - 响应标头

2023-12-26

我在 Spring mvc 的项目中实现了文件下载,在下载文件时,它在 tomcat 7 服务器上出现以下错误:

org.apache.coyote.http11.HeadersTooLargeException: An attempt was made to    write more data to the response headers than there was room available in the buffer. 
Increase maxHttpHeaderSize on the connector or write less data into the response headers.

我还尝试使用 server.xml 中的以下代码来增加标头大小

<Connector port="8080" maxHttpHeaderSize="65536" protocol="HTTP/1.1" ... />

但是,这也不起作用,我仍然收到上述错误。

下面是文件下载的控制器代码:

@RequestMapping(value = "/admin/file/download", method = RequestMethod.GET)
public @ResponseBody ModelAndView download(HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    int id = ServletRequestUtils.getRequiredIntParameter(request, "id");
    Files file = this.filesManager.find(id);
    response.setContentType(file.getType());
    response.setContentLength(file.getFile().length);       
    response.setHeader("Content-Disposition", "attachment; filename=\""+ file.getFilename() + "\"");
    FileCopyUtils.copy(file.getFile(), response.getOutputStream());     
    response.flushBuffer();     
    return null;

}

文件类存储来自数据库的文件信息:

  public class Files {
     private int id;
     private String filename;    
     private String type;
     private byte[] file;
  }

我也尝试删除以下行,但仍然给出相同的错误:

        response.setHeader("Content-Disposition",
 "attachment; filename=\""+ file.getFilename() + "\"");

我有类似的问题。就我而言,响应对象确实有太多标头,并且它们的总长度超出了maxHttpHeaderSize。尝试使用调试器检查您的响应对象:在 Tomcat 上,它可能包含coyoteResponse对象有一个headers场地。也许你会发现一些无关的东西设置Cookie标题或类似的?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HeadersTooLargeException - 响应标头 的相关文章

随机推荐

  • 正向索引 vs 倒排索引 为什么?

    我正在阅读有关倒排索引 由 Solr Elastic Search 等文本搜索引擎使用 的内容 据我了解 如果我们以 Person 为例 属性与 Person 的关系是倒置的 John gt PersonId 1 PersonId 2 Pe
  • 从 Sentinel C# 获取 Redis Master 地址

    我正在尝试使用哨兵来获取我的主站的连接地址 问题是哨兵仅在故障转移时发送地址 但是如果我的主站关闭并且从站被提升为主站并且我的应用程序刚刚启动它就不会知道并且不会收到原来master宕机的消息 有什么办法可以和sentinel通信并询问他认
  • 插入到JPA集合而不加载它

    我目前正在使用这样的代码将新条目添加到我的实体中的集合中 player em find Player class playerId player getAvatarAttributeOwnership add new AvatarAttri
  • 在反应本机中多个文本元素的文本换行?

    假设我有以下反应本机代码 FormatText js
  • 使用Android.mk复制/system中的多个txt文件

    目标 我想复制multiple使用 Android mk 在 system Android 设备 中创建 txt 文件 我的发现 我们可以使用两种方法复制文件 1 使用 PRODUCT COPY FILES 这是通过 devices mak
  • Excel文件对比pandas 中的 read_excel

    我正在深入研究熊猫并进行实验 至于从Excel文件中读取数据 我想知道使用 ExcelFile 和 read excel 有什么区别 两者似乎都有效 尽管语法略有不同 正如预期的那样 并且文档支持两者 在这两种情况下 文档描述的方法相同 将
  • OSX 应用程序崩溃:代码签名无效

    我有一个在 App Store 之外分发的 OSX 应用程序 因此 我使用相应的证书 开发人员 ID 应用程序证书 对其进行签名 该应用程序本身是用 Freepascal Lazarus 编写的 并且有一个用 C 编写的依赖库 我也对其进行
  • 使用代理将虚拟列添加到 Qt SQL 模型

    我使用以下命令在视图中显示 SQL 表QSql表模型 我想根据行数据显示附加状态列 为此我使用自定义Q身份代理模型我在哪里增加列数并返回data对于该新的虚拟列 该列不存在于QSql表模型 int MyProxyModel columnCo
  • 如何覆盖默认的窗口关闭操作?

    在 WPF 中 我想更改某些窗口的默认关闭行为 以便当用户单击红色关闭按钮时窗口不会关闭 它只是隐藏 并调用一些方法 我怎样才能做到这一点 尝试重写 Window xaml cs 中的 OnClosing private override
  • Xcode 4:如何自定义文件模板和项目模板?

    在 Xcode 3 中 我们 通过反复试验 发现我们可以将系统模板复制到新位置 三个可能的位置 因为 Apple 不断更改它 并自定义它们 注意 在写这个问题时 我发现 StackOverflow 上关于这个主题的大多数答案都是不正确的 A
  • .NET:将日期时间转换为十进制

    在 SQL Server T SQL 中 您可以将 DateTime 变量转换为十进制值 如下所示 CONVERT DECIMAL 20 10 mytime Sample Input 2012 07 27 08 29 20 000 Samp
  • 无法使用类型属性选择器在 IE7 中设置新的 HTML5 输入类型的样式

    看来即使使用 shivs 你也不能做类似的事情input type search 在 IE7 中设置新的 HTML5 输入元素的样式 您可以在以下位置查看示例http jsfiddle net 2tmAp http jsfiddle net
  • 使用“AJAX”下载 CSV 文件

    我正在尝试为我的网站完成一项相当简单的任务 但我不确定具体如何去做 我希望用户查看一个表格 然后单击一个按钮 此时用户可以保存该表格该表的内容作为 csv 文件 此请求有时可能非常复杂 因此我生成一个进度页面来提醒用户 除了实际生成 csv
  • 使用 BeautifulSoup 选择所有 div 兄弟姐妹

    我有一个 html 文件 其结构如下 div div div div div div div div div div div div div div 我想选择所有兄弟 div 而不选择第三个和第四个块中的嵌套 div 如果我使用find a
  • 竞争条件:整数的最小和最大范围

    我最近在一次采访中被问到这个问题 给定以下代码 静态整数的最小和最大可能值是多少num import java util ArrayList import java util List public class ThreadTest pri
  • 统一选择将物品分布放入垃圾箱中

    想象一下你有n物品和m垃圾箱 所有物品都是相同的 但箱子是不同的 随机选择一批物品放入垃圾箱的最快算法是什么 例如 想象一下104是将 5 件物品放入 3 个箱子中 将 5 件物品放入 3 个箱子中 有 21 种可能的放置方式 005 01
  • 检查最近x秒内是否添加了mySQL记录

    我有一个 mySQL 数据库和一个表 在其中创建项目的新记录 创建的每个项目都有一个 项目名称 和一个事件创建日期 DATETIME 类型 可以有两个使用相同名称创建的项目 但是如果它们是由同一用户快速连续创建的 则可以安全地假设这是用户的
  • 如何将 Cucumber 测试结果保存到文件

    我有一些可以从控制台运行的黄瓜测试 rake cucumber 是否有命令行选项可以将测试结果存储到文本文件中 Either Run cucumber直接并使用 o From cucumber help o out FILE DIR Wri
  • 使用Python解析XML文件以获取所需数据并将其存储在mongodb数据库中

    我有一个 XML 文件 如下所示 我想从此文件中获取所有事件的以下信息 在类别事件下 开始日期 end date title 根据类别场地 address 地址2 city latitude 经度 name 邮政编码 然后将这些信息存储在
  • HeadersTooLargeException - 响应标头

    我在 Spring mvc 的项目中实现了文件下载 在下载文件时 它在 tomcat 7 服务器上出现以下错误 org apache coyote http11 HeadersTooLargeException An attempt was