论坛首页 入门技术论坛

『提问』code too large for try statement ?

浏览 6717 次
该帖已经被评为新手帖
作者 正文
   发表时间:2005-01-21  
软件环境:
Tomcat5
配置文件:

错误提示信息:
D:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\x-access\org\apache\jsp\jsp\editField_jsp.java:7359: code too large for try statement
              try {
                  ^
D:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\x-access\org\apache\jsp\jsp\editField_jsp.java:7416: code too large for try statement
              } catch (Throwable _jspx_exception); {
                ^
D:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\x-access\org\apache\jsp\jsp\editField_jsp.java:7398: code too large for try statement
              try {
                  ^

你的分析:
大家好,我遇到一个很BT的问题,由于jsp文件太大而造成的。
我使用jstl的语法进行条件判断,符合某一条件就把某一个文件包含进来。本来在jsp里面根据某一条件包含某一个问题的做法是行不通的,但在jstl就行!这样做的好长就是分而治之,便于模块化等等--我们系统的好多地方都是使用这样种方式处理的。使用include的原理是把所有的被包含的jsp文件在主文件编译的时候全部包含进来,这样生成的xxx_jsp.java文件是比较大的。当生成的xxx_jsp.java文件大概超过1MB时就出现了上面所说的那个错误(code too large for try statement)。

这是我从代码里面考下来的一部分:
     <c:choose>
	<c:when test="${condition1}">			   <%@ include file="xxFile1.jsp"%>			 </c:when>					<c:when test="${condition2}">			<%@ include file="xxxFile2.jsp"%>			</c:when>
                <!--
                .....从这里省略了将近10个when的判断
            -->
      </c:choose>
   发表时间:2005-01-21  
这个问题是比较bt
不过能写出编译后大于1M。。。。
还是你更bt些啊
0 请登录后投票
   发表时间:2005-01-21  
这应该是虚拟机的限制吧,编译出来的class文件体积有限制的,tag就这点不好,你没有办法解决的,改程序吧,去掉那些tag。
0 请登录后投票
   发表时间:2005-01-22  
谢谢大家的指导。看来我必须改程序:把when 和include去掉,将其拆成好多个jsp文件,把条件判断放回controller层(或做一个Hash映射),controller根据不同的条件跳转到不同的jsp,而不是只跳转到一个jsp。--这不是我BT呀,当初只是为了省事,而且当初jsp文件也没那么多,when判断也没这么多,后来才一点一点的加进来的。
0 请登录后投票
   发表时间:2005-01-24  
晕死了,第一见这么大的jsp
0 请登录后投票
   发表时间:2007-01-10  
weblogic 9 解决了这个问题,发布在他上面就不会有任何问题了。我试过了。这个问题也困扰了我们项目组很久。
0 请登录后投票
   发表时间:2007-04-29  
我也遇到了这样的问题。
http://marc.info/?l=struts-user&m=98512887614286&w=2
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics