FineReport 部署在 Tomcat 上时,post 提交参数过多时,子报表无法显示

编辑
  • 文档创建者:Kevin-s
  • 浏览次数:1169次
  • 编辑次数:2次
  • 最近更新:susie 于 2019-06-12
  • 1.描述

    当将 FineReport 部署到 Tomcat 上时,当需要将主表的参数通过网络报表全部传递给子表,选择如下图的设置:

    image.png

    image.png

    点击主表的链接,钻取到子表。而有时候主表有需要大量的传递参数,将参数传递和继承给各个子表,会导致子表无法显示无法运算的问题,页面为空白页面或者如下图:

    image.png


    2. 原因分析

    是由于 Tomcat 默认的 post 参数的最大大小为 2M, 当超过时将会出错,可以配置 maxPostSize 参数来改变大小。传出的参数大小超过这个限制就会导致上面的问题。

    3. 解决方案

    从 Apache-Tomcat-7.0.63 开始,参数 maxPostSize 的含义就变了: 如果将值设置为 0,表示 POST 最大值为 0,如果将值设置为 -1,表示不限制 post 大小。在此版本之前设置为 0 表示不限制 post 大小。


    3.1 Tomcat 6 及 以下版本解决方案

    打开 Tomcat 下的 conf 下的 server.xml 文件


    在 Tomcat 文件夹下的 conf 文件中的 server.xml 配置中添加:

    maxPostSize="0"  //0 表示不限制大小

    <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" maxPostSize="0"/>



    3.2 Tomcat 7 及以上版本解决方案

    在 Tomcat 文件夹下的 conf 文件中的 server.xml 配置中添加:

    maxPostSize="-1"   //-1 表示不限制大小

    maxPostSize:指定 post 方式请求的最大量,没有指定默认为 2097152。

    maxHttpHeaderSize ="102400"          

    maxHttpHeaderSize:HTTP 请求和响应头的最大量,以字节为单位,默认值为 4096 字节          

    <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" maxPostSize="-1" maxHttpHeaderSize ="102400"/>

    maxPostSize="-1" maxHttpHeaderSize ="102400"/>


    4. 操作步骤

    根据解决方案进行修改就可以解决 Tomcat 部署 FineReport 中报表 post 参数过多无法显示问题


    附件列表


    主题: 部署集成
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]