请求实体太大(JasperServer/Apache/Tomcat)
Request Entity Too Large (JasperServer / Apache / Tomcat)
当我尝试访问某些 JasperReports 服务器页面时出现以下错误:
Request Entity Too Large The requested resource
/jasperserver/olap/viewOlap.html does not allow request data with GET
requests, or the amount of data provided in the request exceeds the
capacity limit.
我检查了 Apache 日志文件并在 mod_jk.log
中收到以下错误
[Thu Nov 10 10:25:00 2016][8964:3876] [error]
ajp_marshal_into_msgb::jk_ajp_common.c (517): failed appending the
query string of length 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" />
我还向 Apache httpd.conf 文件添加了 LimitRequestLine、LimitRequestBody、LimitRequestFieldSize 和 LimitRequestFields(将其添加到文件末尾,没有任何 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://HOSTNAME:8081/jasperserver/..) it works fine. Only when I access it via AJP-Connector of Apache (http://HOSTNAME/jasperserver/..) 的 HTTP 连接器访问相同的页面时,出现错误。所以我觉得应该是AJP-Connector有什么问题。
阿帕奇:2.4.12
JasperReports 服务器:6.2.1
Apache Tomcat 版本 8.0.14:
有没有人建议我必须做些什么来解决这个问题?
我想通了。
server.xml 中 Tomcat 的属性必须是
packetSize
并不是
max_packet_size
另请参阅文档 AJP Connector
重命名后,可以正常使用
这是我的配置:
Tomcat server.xml:
Connector port="8010" protocol="AJP/1.3" redirectPort="8443" packetSize="65536"
阿帕奇 workers.properties:
worker.jasper.max_packet_size=65536
如果之后出现错误:
Request-URI Too Long
The requested URL's length exceeds the capacity limit for this server.
您必须在 Apache httpd.conf 文件中设置以下属性:
LimitRequestLine 65536
LimitRequestBody 0
LimitRequestFieldSize 65536
LimitRequestFields 10000
希望这个回答对其他人也有帮助。
当我尝试访问某些 JasperReports 服务器页面时出现以下错误:
Request Entity Too Large The requested resource /jasperserver/olap/viewOlap.html does not allow request data with GET requests, or the amount of data provided in the request exceeds the capacity limit.
我检查了 Apache 日志文件并在 mod_jk.log
中收到以下错误[Thu Nov 10 10:25:00 2016][8964:3876] [error] ajp_marshal_into_msgb::jk_ajp_common.c (517): failed appending the query string of length 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" />
我还向 Apache httpd.conf 文件添加了 LimitRequestLine、LimitRequestBody、LimitRequestFieldSize 和 LimitRequestFields(将其添加到文件末尾,没有任何 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://HOSTNAME:8081/jasperserver/..) it works fine. Only when I access it via AJP-Connector of Apache (http://HOSTNAME/jasperserver/..) 的 HTTP 连接器访问相同的页面时,出现错误。所以我觉得应该是AJP-Connector有什么问题。
阿帕奇:2.4.12 JasperReports 服务器:6.2.1 Apache Tomcat 版本 8.0.14:
有没有人建议我必须做些什么来解决这个问题?
我想通了。
server.xml 中 Tomcat 的属性必须是
packetSize
并不是
max_packet_size
另请参阅文档 AJP Connector
重命名后,可以正常使用
这是我的配置:
Tomcat server.xml:
Connector port="8010" protocol="AJP/1.3" redirectPort="8443" packetSize="65536"
阿帕奇 workers.properties:
worker.jasper.max_packet_size=65536
如果之后出现错误:
Request-URI Too Long
The requested URL's length exceeds the capacity limit for this server.
您必须在 Apache httpd.conf 文件中设置以下属性:
LimitRequestLine 65536
LimitRequestBody 0
LimitRequestFieldSize 65536
LimitRequestFields 10000
希望这个回答对其他人也有帮助。