JSP页面过大的解决方案,Tomcat报错“is exceeding the 65535 bytes limit”

1. 前情提要

我的目标是要把公司的一个非常老的项目跑起来,熟悉里面的业务,该项目使用的JSP+Servlet来做的,JSP页面里面有很多java代码,最初的代码是十几年前的,后面又维护这个项目的时候又在jsp页面里写了很多java的逻辑,导致jsp页面太大了,大的有6000行左右。

2. 产生的问题

项目跑起来以后,只要跳转到某个特定页面的时候,就会报异常。

is exceeding the 65535 bytes limit

3. 解决方案

在网上查了很多的方法,几乎都是对Tomcat的web.xml进行配置,如:


		debugjsp
		Added to compile JSPs with debug info
		org.apache.jasper.servlet.JspServlet
		
			classdebuginfo
			true
		
		
			mappedfile
			false
		
		3

主要添加了这个配置:


			mappedfile
			false

因为mappedfile默认为true。那么mappedfile是控制什么的呢?

 
 
 

这是Tomcat的web.xml里面的备注信息。
到这里基本上网上的资料里解决方案都结束了,配置这个属性就能解决问题,但是我的问题还是没有解决。

如果看到这里你的问题能够解决,那么就不需要往下看了。

我主要的怀疑点:因为我的这个机子之前别人用过,很多环境都配置好了,我也没有改太多。
最后用Everything查了下机器里面到底有多少个Tomcat,结果除了我自己配置的Tomcat 8以外,还有6和7,打开Eclipse中查看使用的是哪一个Tomcat,到这个Tomcat里面去修改属于它的Web.xml,发现这一步没有问题,clean项目后重新启动还是不行。
问了下同事,同事说老项目必须用Tomcat 6 ,用高于这个版本的可能报错,之后修改了Tomcat的版本结果还是没有解决。
最后我尝试把机器上所有的Tomcat都做这个配置,问题依然存在。

4. 最终版

万般寻找后,还是找到了这个问题的解决方案。

在项目的web.xml也进行mappedfile的初始化配置,之前的解决方案是在Tomcat的web.xml里面配置mappedfile


		debugjsp
		Added to compile JSPs with debug info
		org.apache.jasper.servlet.JspServlet
		
			classdebuginfo
			true
		
		
			mappedfile
			false
		
		3

具体的配置位置可能不同,假如是使用了框架那应该不会产生这个问题。如果也是用的Servlet+JSP那么在统一初始化参数的位置进行配置即可。
感谢阅读,如有错误请指正。

你可能感兴趣的:(Java,Tomcat,JSP,JAVA,页面过大)