JSP byte 제한 이슈

이슈

The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit

특정 페이지에서 위와 같은 에러가 발생했다. 에러 내역은 65535 byte의 제한을 넘겼다는 내용이다.

원인

JSP 파일의 용량이 65535 byte를 넘기면 특정한 설정 없이 페이지를 배포할 수 없기 때문이다.

경과 및 해결

설정 없이 문제를 해결하려면 jsp:include 기능을 활용해 페이지를 영역별로 쪼개면 가능하다. 배포할 때는 합쳐져서 배포되므로 문제가 발생하지 않는다. 하지만 Include 없이 간단한 설정만으로도 한계 용량을 넘는 JSP 파일을 페이지로 배포할 수 있다.

<servlet>  
	<servlet-name>jsp</servlet-name>
	<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
	<init-param>
		<param-name>mappedfile</param-name>
		<param-value>false</param-value>
	</init-param>
</servlet>

~/tomcat/conf 경로의 web.xml 설정 파일 내에서 위와 같이 설정을 추가해주면 해결된다.

추가로 Spring Boot 프로젝트에서 JSP를 사용한다면 application.properties 혹은 application.yml 설정 파일에 아래와 같이 추가한다.

#application.properties

srver.jsp-servlet.init-parameters.mappedfile = false

#application.yml

server:
	servlet:
		jsp:
			init-parameters:
				mappedfile: false