ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP 용량초과? 65535 bytes limit
    java/WEB WAS 2023. 3. 15. 13:54
    728x90
    반응형

    해결방법 1

     

    개발을 하다가 갑자기 특정 페이지에 들어가는데 이클립스 로그창에 이런 메세지가 나오더니 페이지 에러가 났다. -_-;

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

    구글링을 해보니 JVM의 Method Size 는 64K로 제한이 된다고 글들이 써있었다.

    일단 해결 방법은 서버에 있는 web.xml에 아래와 같이 설정해주면 된다.   

    1. <servlet>
    2.         <servlet-name>jsp</servlet-name>
    3.         <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    4.         <init-param>
    5.             <param-name>mappedfile</param-name>
    6.             <param-value>false</param-value>
    7.         </init-param>
    8. </servlet>

    JVM spec : Limitations of the Java Virtual Machine

    위 링크로 들어가보면 어떤것들을 포함해서 64K로 제한되어있는지 설명이 되어있다.. 물론 영어로.

     

    해결방법2

    JEUS에서 JSP 64KB 초과 문제 해결

    1. 배경

    JSP 파일 내에 내용이 너무 많을 때 .java 파일을 생성하면 내부 메소드 크기가 64KB를 초과할 수 있다. 이는 Java 컴파일로로 컴파일 되지 않는다.
     

    2. 해결

    web.xml에 추가한다.

    <servlet>
        <servlet-name>jeus.servlet.servlets.JspServlet</servlet-name>
        <servlet-class>jeus.servlet.servlets.JspServlet</servlet-class>
        <init-param>
          <param-name>genStringAsCharArray</param-name>
          <param-value>true</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>jeus.servlet.servlets.JspServlet</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>
    

    3. 주의사항

    문자열이 아닌 실제 Java 코드량이 많은 경우에는 컴파일이 실패함.

     
    728x90
    반응형
Designed by Tistory.