请求实体太大(JasperServer / Apache / Tomcat)

时间:2016-11-10 10:59:46

标签: java apache tomcat jasperserver

当我尝试访问某些JasperReports服务器页面时出现以下错误:

  

请求实体太大请求的资源   /jasperserver/olap/viewOlap.html不允许使用GET请求数据   请求,或请求中提供的数据量超过   容量限制。

我检查了Apache日志文件,并在mod_jk.log

中遇到了以下错误
  

[2016年11月10日星期四10:25:00] [8964:3876] [错误]   ajp_marshal_into_msgb :: jk_ajp_common.c(517):添加失败   查询字符串长度为7417

我已经尝试了很多不同的方法来解决它。

我将maxHttpHeaderSize和max_packet_size属性添加到Tomcat(server.xml)的ajp连接中:

<Connector port="8010" protocol="AJP/1.3" connectionTimeout="20000" redirectPort="8443" maxHttpHeaderSize="65536" max_packet_size="65536" />

我还将LimitRequestLine,LimitRequestBody,LimitRequestFieldSize和LimitRequestFields添加到Apache httpd.conf文件中(将其添加到文件的末尾,没有任何VirtualHost):

LimitRequestLine 65536 LimitRequestBody 0 LimitRequestFieldSize 65536 LimitRequestFields 10000

我仍然收到上述错误。

我还发现了一些将max_packet_size添加到Apache的workers.properties的建议。但是,如果我添加属性,我会收到HTTP 400错误和白页。这就是我在workers.properties中评论该属性的原因:

#worker.jasper.max_packet_size=65536

我在更改配置后重新启动了所有服务。

当我通过Tomcat的HTTP-Connector(http://HOSTNAME:8081/jasperserver/.。)访问相同的页面时,它工作正常。只有当我通过AJP-Connector of Apache(http://HOSTNAME/jasperserver/.。)访问它时,我才会收到错误消息。所以我认为AJP-Connector应该有任何问题。

Apache:2.4.12 JasperReports服务器:6.2.1 Apache Tomcat版本8.0.14:

是否有人建议我必须采取哪些措施来解决问题?

1 个答案:

答案 0 :(得分:1)

我发现了问题。

Tomcat的server.xml中的属性必须是 packetSize 并不是 max_packet_size

另见文档AJP Connector

重命名后,它可以正常工作。

以下是我的配置:

Tomcat server.xml:

Connector port="8010" protocol="AJP/1.3" redirectPort="8443" packetSize="65536"

Apache workers.properties:

worker.jasper.max_packet_size=65536

如果你之后得到错误:

  

Request-URI太长

     

请求的网址长度超出了此服务器的容量限制。

您必须在Apache httpd.conf文件中设置以下属性:

LimitRequestLine 65536 LimitRequestBody 0 LimitRequestFieldSize 65536 LimitRequestFields 10000

我希望这个答案能帮助其他人。

相关问题