* 에러로그
An error occurred at line: 70 in the generated java file
The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.jav acError(DefaultErrorHandler.java:98
아주 오래전에 한번 들어봄직한 자바파일 사이즈가 65535 bytes제한이 있다는 이야기...^^;
이거 실제로 겪어보니 황당하기도 하고, 난감하기도 했다.
서버쪽 비즈니스 로직 코드에 자바파일이 이만큼 큰 경우는 거의 없을 것이다.
하지만, jsp는 화면이 복잡하다가 보면 코드량이 많아져서 발생할수 있는 문제중의 하나이다.
이 문제를 해결하기 위한 방법! js나 css를 파일로 분리한다,
1. 링크형태로 jsp페이지에 넣는다.
2. 반드시 페이지 안에 넣어야 한다면, 베스트 선택은 커스텀 태그이다.
동적으로 페이지 안으로 코드를 넣기 때문에 사이즈가 조금 밖에 증가하지 않는다.
* jsp에 있는 커스텀태그가 컴파일된 이후 자바파일 코드
private boolean _jspx_meth_b_js_0(PageContext _jspx_page_context)
throws Throwable {
PageContext pageContext = _jspx_page_context;
JspWriter out = _jspx_page_context.getOut();
// b:js
com.naver.blog.foundation.web.taglib.HtmlResourceIncludeTag _jspx_th_b_js_0 = (com.naver.blog.foundation.web.taglib.HtmlResourceIncludeTag) _jspx_tagPool_b_js_path_nobody.get(com.naver.blog.foundation.web.taglib.HtmlResourceIncludeTag.class);
_jspx_th_b_js_0.setPageContext(_jspx_page_context);
_jspx_th_b_js_0.setParent(null);
_jspx_th_b_js_0.setPath("/common/javascript/common.js");
int _jspx_eval_b_js_0 = _jspx_th_b_js_0.doStartTag();
if (_jspx_th_b_js_0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
_jspx_tagPool_b_js_path_nobody.reuse(_jspx_th_b_js_0);
return true;
}
_jspx_tagPool_b_js_path_nobody.reuse(_jspx_th_b_js_0);
return false;
}
