The code of method ... is exceeding the 65535 bytes limit

user2334908 picture user2334908 · Apr 30, 2013 · Viewed 14.4k times · Source

Inside a jsp I have a small header :

<%@ page import="java.util.*"%>

<% HttpSession CurrentSession =
 request.getSession();
 ...
%>

...and a big html

<html>
...
</html>

If I try to read it as is I get an error of "...is exceeding the 65535 bytes limit".I have to break it up.Since I am new to java I cannot figure it out how to do it.Could you please indicate me the way?

Answer

Joop Eggen picture Joop Eggen · Apr 30, 2013

The JSP is converted into a normal Servlet java source, and some generated method is too large, as there is a 64 KB limit (on the byte code) on method lengths.

If possible change static includes (really embedding an other JSP source) with dynamic includes.

The solution (and probably good style) is too introduce a couple of methods into which pieces of the general code is moved. For instance to generate a HTML table row with <tr>:

<%@

    void tableRow(String... cellValues) {
        %><tr><%
           for (String cellValue : cellValues) {
               %>  <td><%= cellValue %></td>
  <%
           }
        %></tr>
  <%
    }
%>

...

<%
    tableRow("one", "unu", "un");
    tableRow("two", "du", "deux");
    tableRow("three", "tri", "trois");
%>

P.S. The above method is too small scale to save much, taking a large piece and create a method like createResultsTable is more effective.