JSP文件過大編譯失敗,異常如is exceeding the 65535 bytes l...
2年前
JSP文件過大無法編譯,後臺拋異常Generated servlet error:The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit,建議修改web.xml加入初始化參數,應該能有所改善。
問題描述
項目中使用SCE表單,字段很多,使用的控件多,造成JSP文件過大,在表單預覽時後臺拋異常The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit。
[super][2014-10-16 11:41:15,794][ERROR][org.gocom.components.coframe.policy.RulesIpFilter:49] Error to Filter url of http://www.bb.mac:8080/super/ap_web/ZY09A/ZY09A_1__form.jsp
org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to compile class for JSP
Generated servlet error:
The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
......
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:695)
Caused by: org.apache.jasper.JasperException: Unable to compile class for JSP
Generated servlet error:
The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
... 73 more
解決方案
空行的去除沒有幫助,減少引用的js會有小幫助,但在jsp本身很大的時候作用有限。建議嘗試修改應用服務器的web.xml文件(在tomcat下位於conf目錄下,在jboss下位於server\default\deploy\jbossweb.sar目錄下 ),修改如下圖所示之處,加入紅框內的初始化參數。