Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel

Quick Links to:

Table of Contents
minLevel3
Panel

Tomcat 7 manager fails when deploying a WAR file when using and AJP connector

When the Tomcat 7 manager tries to deploy a war file, it fails with the following error:

Code Block

Feb 28, 2013 8:20:35 AM org.apache.coyote.ajp.AjpMessage processHeader
SEVERE: Invalid message received with signature 8192
Panel

Tomcat 7 manager fails when deploying a WAR file larger than 50 MB.

When the Tomcat 7 manager tries to deploy a war file that is larger that 50 MB, it fails with the following exception:

Code Block
HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (63475228) exceeds the configured maximum (52428800)
	org.apache.catalina.connector.Request.parseParts(Request.java:2780)
	org.apache.catalina.connector.Request.parseParameters(Request.java:3024)
	org.apache.catalina.connector.Request.getParameter(Request.java:1139)
	org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:382)
	org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:163)
	org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)

root cause 

org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (63475228) exceeds the configured maximum (52428800)
	org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:804)
	org.apache.tomcat.util.http.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:284)
	org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:304)
	org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:129)
	org.apache.catalina.connector.Request.parseParts(Request.java:2718)
	org.apache.catalina.connector.Request.parseParameters(Request.java:3024)
	org.apache.catalina.connector.Request.getParameter(Request.java:1139)
	org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:382)
	org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:163)
	org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.25 logs.

ANSWER:

  • By default, the maximum file size that can be uploaded by the Tomcat 7 manager is 52428800 bytes.  Do the following to change the default:
    1. Edit the web.xml of the Tomcat manager application.  You can find the web.xml file for the Tomcat manager application in the *webapps/manager/WEB-INF directory of your Tomcat installation.
    2. Find the <multipart-config> tag (show below) and increase the max-file-size and max-request-size (both initially set at 52428800) to something larger than the war file size you want to deploy.
    3. When you are satisfied with your changes, save your changes and restart your Tomcat server.
      Code Block
      <multipart-config> 
          <max-file-size>52428800</max-file-size> 
          <max-request-size>52428800</max-request-size> 
          <file-size-threshold>0</file-size-threshold> 
      </multipart-config>