Tomcat – Como consertar o problema do limite de 65535 bytes

Por padrão o Tomcat só aceita JspServelts (aqueles Códigos Java que ficam dentro de um JSP <% %>) em um limite total de 65Kb (65535 byes). Ao tentar acessar uma página JSP que extrapole esse limite você poderá se deparar com a seguinte mensagem.


Unable to compile class for JSP
The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit

Para resolver isso o recomendável é a refatoração do código que retire o código da camada de apresentação (¬¬ Obvius!) (um simples MVC já resolve!). No entanto, como sabemos que existem alguns projetos legados e bem antigos com pouca possibilidade de alteração, caso seja necessário uma força bruta para resolver a situação utilize o seguinte parâmetro de inicialização no seu Tomcat.

1) Abra o arquivo [Tomcat_Home]/conf/web.xml e procure pelo texto “JspServlet”. Ao encontrar o nó que contem esse texto adicione o seguinte parâmetro de inicialização.

<init-param>
     <param-name>mappedfile</param-name>
     <param-value>false</param-value>
</init-param>

 

A nova tag deve ficar da seguinte maneira:

 <servlet>
         <servlet-name>jsp</servlet-name>
         <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
         <init-param>
             <param-name>fork</param-name>
             <param-value>false</param-value>
         </init-param>
         <init-param>
             <param-name>xpoweredBy</param-name>
             <param-value>false</param-value> 
        </init-param>
 	<init-param> 
            <param-name>mappedfile</param-name>
             <param-value>false</param-value>
     	</init-param>
        <load-on-startup>3</load-on-startup>
     </servlet>

Após estas alterações salve o arquivo e reinicie o Tomcat!


So, what do you think ?