<2008-10-10 오전 10시12분11초 KST> <Error> <HTTP> <BEA-101017> <[ServletContext(id=1340300986,name=screen,context-path=)] Root cause of ServletException.
weblogic.servlet.jsp.CompilationException: Compilation of /WEBDOM/RPSdom/./RPSSVR/.wlnotdelete/extract/RPSSVR_rps_screen/jsp_servlet/_rk/_py/_pc/__rkpypc12.java failed.
/WEBDOM/RPSdom/./RPSSVR/.wlnotdelete/extract/RPSSVR_rps_screen/jsp_servlet/_rk/_py/_pc/__rkpypc12.java:9625: code too large for try statement
} catch(Exception e) {} //[ /rk/py/pc/rkpypc12.jsp; Line: 4306]
^
/WEBDOM/RPSdom/./RPSSVR/.wlnotdelete/extract/RPSSVR_rps_screen/jsp_servlet/_rk/_py/_pc/__rkpypc12.java:9628: code too large for try statement
} catch (Throwable __ee) {
^
위 오류는 메시지 내용대로 코드가 너무 길기 때문에 발생하는 문제입니다. WebLogic 의 문제라기 보다는 JVM 자체의 제약사항입니다.
This is a limitation of the Java Virtual Machine (JVM). Under the current JVM specification, the maximum class size is 64k and the maximum method size is 32k. These runtime errors may appear when either of these limits has been exceeded. These limitations are documented in the Java VM Specification:
Limitations of the Java Virtual Machine <http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88659>
In the example above, the JVM is unable to execute the class because there is too much byte code enclosed within the try block. Since this problem is due to the JVM rather than WebLogic Server (the Java compiler is able to compile code which the JVM is unable to run), a best practice is to try to reduce the size of your code. You may want to run the EJB compiler with the -keepgenerated flag in order to see if the number of lines in the EJB source file is reaching the point where this error might occur.
웹로직에서 가능한 방안은 weblogic.xml 에 아래 내용을 추가하여 볼 수 있습니다.
<jsp-descriptor>
<jsp-param>
<param-name>noTryBlocks</param-name>
<param-value>true</param-value>
</jsp-param>
</jsp-descriptor>
그리고 아래 링크에 해당 문제를 다른 방식으로 해결했던 팁이 있는 것 같으니 참고 하시기 바랍니다.
http://www.okjsp.pe.kr/seq/41858