当我尝试访问某些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:
是否有人建议我必须采取哪些措施来解决问题?
答案 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
我希望这个答案能帮助其他人。