tomcat IIS IIS7 jk connector max_packet_size packetSize "The page was not displayed because the request entity is too large"
Problem:
With IIS successfully configured with tomcat using the Apache Tomcat Connector (aside: if you haven't got that far the IIS Admin Blog - How To Configure IIS 7.0 and Tomcat is a good reference - with screenshots) you find that some users can access the web-apps ok, others cannot. They get a plain error page saying:
The page was not displayed because the request entity is too largeHow do you fix it?
Solution:
The issue is with attributes in the request exceeding the AJP 8kb default (for me, the ISAPI redirector was logging the error was with the 'Authorization' attribute). You can increase this to maximum of 65Kb.
This needs to be done in the tomcat-connector and tomcat itself.
Step 1: Set max_packet_size
in the worker definition
In the workers.properties
file referenced by the tomcat-connection definition, set the packet size to the maximum:worker.<worker name>.max_packet_size=65536for example:
worker.ajp13w.max_packet_size=65536Check the workers documentation for more information.
Step 2: Set packetSize
in the AJP Connector definition
In the server.xml
configuration file for tomcat, set the packet size to the maximum:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" packetSize="65536" tomcatAuthentication="false" />Check the AJP Connector documentation for more information.
You'll then need to restart tomcat and IIS Site for the changes to take effect (then hope for the best).