Could not initialize class org.apache.jsp.WEB_002dINF.theme.default_.shop.index_jsp 一个破BUG,又浪费我2个晚上

HTTP Status 500 - java.lang.NoClassDefFoundError: Could not initialize class org.apache.jsp.WEB_002dINF.theme.default_.shop.index_jsp

出现这个bug源至jstl的trim函数

这个函数将一个字符串两端的空格去掉

关于这个函数的一些介绍,大家可以查看这里

JSTL的trim标签用法,以及一般错误处理

因为当时没有解决这个去掉空格的问题,所以就想起了自定义标签

自定义标签,由于是第一次使用jstl

就按照网站的方法自定义标签

网上方法,第一步就是下载2个jar

下载jstl.jar和standard.jar

问题就出现在了这一步,我下载了jstl1.2


<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>jstl</artifactId>
	<version>1.2</version>
</dependency>


因为jstl1.2.jar里面就已经包含了standard.jar

而以前的jstl1.1版本里就没有包含standard.jar

下面的图是我分别打开这些jar,以方便大家查看(jstl1.2已包含了standard.jar)

[caption id="attachment_1412" align="alignnone" width="620"]JSTL1.2包含了standard.jarJSTL1.2包含了standard.jar[/caption]

错误就从这里开始了

当然,我自定义标签也是没有问题的,只是因为这里jar包冲突了,所以自定义的标签肯定是无法运行的

就是说,从此时开始就出现了博客最开始提到的那个错误

后来我就把配置的自定义标签的一些配置删除,以达到恢复的目的

然后这个错误就一直跟着我了

HTTP Status 500 - java.lang.NoClassDefFoundError: Could not initialize class org.apache.jsp.WEB_002dINF.theme.default_.shop.index_jsp

直到刚刚,我就想删除掉jsp的编译目录试一下

偶然的发现,错误提示中出现的地址 org.apache.jsp.WEB_002dINF.theme.default_.shop.index_jsp

是一个完整的目录

他的地址类似于这样,注意看后面那一大串

/mysoft/eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/work/Catalina/localhost/LoveBN/org/apache/jsp/WEB_002dINF/theme/default_/shop

最终的解决方法就是删除这个目录下的文件即可

[caption id="attachment_1411" align="alignnone" width="445"]Could not initialize class org.apache.jsp Could not initialize class org.apache.jsp[/caption]

这个bug真的是好深阿!!


爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img