Tomcat
으로 멀쩡히 서비스 중이던 어느 날, 갑자기 오류가 발생했습니다.
배포 이후의 오류라서 배포 파일에 문제를 찾아보기 시작했습니다.
The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit
톰캣에서 JSP의 기본 용량은 65535 bytes입니다.
JSP 하나의 파일 용량이 기준을 초과하면 오류가 발생합니다.
우선 JSP 파일을 나눠서 용량을 분산하는 방법이 있습니다.
include를 쓰면 간단히 적용이 가능합니다.
사실 JSP 파일의 용량을 제한한 이유는 명확합니다.
파일의 용량이 크면 성능이 떨어지기 때문입니다.
하지만 근본적인 해결은 되지 않습니다.
근본적인 해결을 위해서는 웹서버의 용량 설정을 해제하면 됩니다.
우선 톰캣은 web.xml
에 설정을 추가합니다.
<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>
만약 SpringBoot라면 application 설정 파일에 추가해 줍니다.
아래는 application.yml 파일의 설정 예제입니다.
그런데 사실 스프링부트 프로젝트에서 JSP를 사용하는 경우는 거의 없습니다.
server: servlet: jsp: init-parameters: mappedfile: false